|
From the SKOS spec. Example 20 (consistent)
New datatypes can be defined, and these are commonly called "user-defined datatypes". What needs to be done to define ? Is it something along the lines of
Are there differences doing this in RDFS, OWL(2) Full, OWL-DL? |
|
OWL 2 has some powerful new features for defining datatypes. (When reading that document and all other OWL documents be sure to turn on the RDF examples first - you can do that somewhere after the table of contents.) For a SKOS notation you would probably do a regexp restriction on the datatype
Using that in OWL 2 DL is no problem. If you want to stay within one of the profiles though note that defining datatypes through such restrictions isn't allowed in any of them. So for increased interoperability (also with OWL 1 and RDFS) you could just use Thanks, how would that look in RDF/XML Syntax? (Will try to find out myself... but it's always helpful if someone can provide the correct version directly, and there are not too much material on this out on the web yet :( ) I have now tried the following, but not sure if it is does what I expect (I expect it to define nmr:ppm as a double type, with no added restrictions): <rdf:rdf xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:nmr="http://www.ebi.ac.uk/nmrshiftdb/onto#"> <rdf:description rdf:about="nmr:ppm"> <rdf:type rdf:resource="rdfs:Datatype"/> <owl:ondatatype rdf:resource="xsd:double"/> </rdf:description> </rdf:rdf>Why do you need the link with owl:equivalentClass to a blank node? It looks more convenient to directly link owl:onDatatype and owl:withRestriction to the new data type. Good question. I'm not sure if it's needed or not. But it would seem that if you don't do it that way then your class is actually describing everything to which this restriction applies. So if someone else defines a class with the same restrictions then a reasoner would probably see them as the same class and attach your rdf:label to it. I think it's safer to use owl:equivalentClass here. |


