Search code examples
owlsemantic-webrdfs

How to express a textual definition using OWL/RDFS?


I have multiple classes. Those classes have multiple labels and a textual definition. While it is clear to me that I can use rdfs:label for names I am currently struggling with a suitable property for definitions.

I think that a label and a definition are different concepts and should not be expressed using the same property. Looking through the RDFS recommendation, I could not find a suitable property. I have seen that rdfs:comment is sometimes used - but I think a comment is different from a definition. Also, rdfs:isDefinedBy does not seem to be a suitable candidate. I could also not come up with a suitable candidate in OWL.

Why is there no rdfs:definition. What am I missing here?


Solution

  • As AKSW said in his, uh, comment: rdfs:comment is intended for exactly that use.

    I suppose the word “comment” here is used like it is in programming. The “human-readable definition” of a class or function is usually written in a comment on the function definition.

    If you find rdfs:comment too broad, then skos:definition is a good alternative. It is one of the documentation properties in SKOS, and the SKOS Primer says:

    skos:definition supplies a complete explanation of the intended meaning of a concept.

    While SKOS is mostly known for its ability to define concept schemes, its documentation properties can be used on resources of any type. In fact, documenting an owl:Class is one of the examples given:

    In the example graph below, skos:definition has been used to provide a plain text definition for a resource of type owl:Class — this is consistent with the SKOS data model.

    <Protein> rdf:type owl:Class ;
        skos:definition """A physical entity consisting of
            a sequence of amino-acids; a protein monomer;
            a single polypeptide chain. An example is the
            EGFR protein."""@en .