The StatementConstraint rdfs:ConstraintProperty The purpose is to represent in an RDF Schema, the properties a specific satement can have. Implementation -------------- StatementConstraint subClassOf rdfs:ConstraintProperty statementPredicate type StatementConstraint domain rdfs:Statement range rdf:predicate Illustration ------------ Lets say I have a Person with an intrest in a Topic. (That would be a resource of type Person and a resource of type Topic in a Statement with the Predicate intrest.) Suppose I want to represent the strength of an individual persons individual intrest. That would be a property of the reified statement, not of the intrest property. In the implementation, the statementPredicate will be used with the intrest property. A Person is said to have a intrest in a Topic. For each of a persons intrest statements, there will be a property of the statement indicating the strength of the intrest. intrest type rdf:predicate domain Person range Topic IntrestStatement subClassOf rdf:Statement statemetPredicate intrest strength type rdf:predicate domain IntrestStatement range FloatZeroToOneInclusive An application can now know what properties a specific statement can have by matching the statement predicate with a specific subClassOf rdf:Statement. --------- Pierre-Antoine CHAMPIN wrote: > > your example is not valid : > IntrestStatement is not a statement : it is a class ; > therefore, the domain of statementPredicate is not Statement, but Class, > even if you intend to use it only on classes that are subclasses of the Statement class... You are right. How do I say that the predicate is only to be used on subclasses of the Statement class, or the Statement class itself? ... If nothing else, I could, as you say, change it to: statementPredicate type StatementConstraint domain rdfs:Class range rdf:predicate > looks like you are trying to provide RDF statements with Descrition Logic features : > describing a class in terms of constraints upon its instances... I think of it as defining propertis for the statement class in the same way as we are defining propertis for other classes, except that you don't have to explicitly state the type for each statement. I find it natural to classify the statement on the basis of the predicate used. > have a look at OIL (http://www.cs.vu.nl/~dieter/oil/oil.nutshell.pdf), > you may find it interesting... Yes. I am reading it now. Thank you. ... Have also looked at CyC upper ontology, wordnet, Prolog, predicate logic, etc. And now the ph ontology. I love it all and can't wait to use it. So I'm implemnting it in Perl. :-) -- / Jonas - http://paranormal.se/myself/en/index.html