Re: Extending RDFS, property-classes

Jiri,

I'm a bit confused. Could you provide a usage example in Turtle, e.g.  
how would this be used in the Tag Ontology to relate tag:taggedWithTag  
and tag:Tagging? Or, going back to another use case mentioned in the  
thread, to define a class foaf:Relation that reifies foaf:knows?

I especially don't understand what :isPromotedProperty is good for. Is  
it just there so you can apply the vocabulary's idea to itself?

The idea as such is excellent, I think. It solves a real problem in  
vocabulary mapping.

Cheers,
Richard



On 9 Feb 2009, at 20:54, Jiri Prochazka wrote:

> 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 23:08:45 UTC