Re: ISSUE-95 Discussions

Holger & WG,

One of the principles of good RDF design is to treat URIs as opaque.
That means applications should not assume that a URI conforms to any
given pattern. In principle the URI of an ontology could be completely
unrelated to the URIs of its terms. We all probably think that is a
terrible thing to do, but RDF seems to strive towards accommodating
any conceivable way of working. Therefore we should always be explicit
about the relation between a term and its defining ontology, hence the
presence of the explicit rdfs:isDefinedBy triples.

The use of explicit rdfs:isDefinedBy triples also allows you to easily
split up a large vocabulary into multiple graphs. This decouples the
vocabulary from how it is stored in graphs. Furthermore, it
distinguishes vocabulary terms from other resources that might be
present in a given graph. In effect, we are treating all subjects of
rdfs:isDefinedBy as vocabulary terms. This is handy for individual
terms defined by a vocabulary, i.e. terms that are neither classes nor

The use of hash URIs is one of the W3C recommended best practices for
publishing RDF [1]. It is therefore convenient to make the URI of the
ontology end with a hash. This is simply a convention that several
prominent W3C vocabularies use.


On Mon, Jan 25, 2016 at 6:11 PM, Holger Knublauch
<> wrote:
> While this topic is out of scope for this WG (and we'll just add these
> triples because the other W3C vocabs seem to do this), it really feels like
> a completely useless triple. If someone publishes a vocabulary then
> supposedly the URIs of the resources shall already be resolvable - problem
> solved - that's the whole point of linked data. So the only possible use
> case that I see is if the rdfs:isDefinedBy can not be derived from the URI
> of the subject resource, and this doesn't seem to be the case for any W3C
> ontology.
> Weird.
> Holger
> On 26/01/2016 2:20 AM, Irene Polikoff wrote:
>> has every resource pointing to itself using isDefinedIn. This
>> doesn't add any information.
>> FIBO has classes, not SKOS concepts, so it doesn't use inScheme.
>> Same for the Life Sciences vocabularies.
>> I would need to check AGROVAC. I agree that ConceptScheme is a sort of a
>> substitute for the partitioning provided by graphs in RDF, but people do put
>> multiple schemes into a single graph.
>> Even in the enterprise data is shared, although in a more controlled way -
>> across different originating groups, possibly, with partners and so on.
>> Sent from my iPhone
>>> On Jan 25, 2016, at 10:22 AM, Karen Coyle <> wrote:
>>>> On 1/24/16 9:22 PM, Irene Polikoff wrote:
>>>> Agree, it is certainly used by W3C vocabularies. But the industry work
>>>> doesn┬╣t seem to follow this practice.
>>>> For example:
>>>> had an outdated version that uses this property, but in a
>>>> totally different way:
>>>> <rdf:Description rdf:about="┬▓>
>>>> <rdf:type rdf:resource="┬▓/>
>>>> <rdfs:label xml:lang="en">Action</rdfs:label>
>>>> <rdfs:comment xml:lang="en┬▓/>
>>>> <rdfs:subClassOf rdf:resource="┬▓/>
>>>> <rdfs:isDefinedBy rdf:resource="┬▓/>
>>>> </rdf:Description>
>>> No, that's the right way to use it, AFAIK. Of course, schema is a bit odd
>>> in many ways...
>>>> FIBO doesn┬╣t use it at all.
>>>> AGROVAC doesn┬╣t use it.
>>> I believe that is because AGROVOC is a SKOS vocabulary, and skos:inScheme
>>> takes the place of rdfs:isDefinedBy. (Although I suppose you could use
>>> both.)
>>>> Life Sciences vocabularies don┬╣t seem to use it.
>>>> I can┬╣t recall seeing anyone in the industry use it when developing
>>>> their
>>>> own ontologies.
>>> Right. It's probably not needed if you don't openly share your
>>> data/ontology. We do use it in Dublin Core, and it undoubtedly has some
>>> bleed-through from library practices where declaring "authority" for data
>>> and practices is important. For data that will be openly shared with anyone,
>>> those anyone's - at least some of them - will want to know what are the bona
>>> fides for any particular property, and to be able to locate the original
>>> definition. If your data won't exit your enterprise system and you don't
>>> allow strangers to come along and add links, then this isn't an issue.
>>> kc
>>>> Just to be clear, I am not advocating not using this convention for
>>>> SHACL.
>>>> I am simply wondering what is the motivation for this practice and why
>>>> it
>>>> is so rarely followed outside of the standard models published by W3C.
>>>> Irene Polikoff
>>>>> On 1/24/16, 11:47 PM, "Karen Coyle" <> wrote:
>>>>> I was hoping that the Linked Open Vocabulary project could help answer
>>>>> this as they provide states on property use across over 550 vocabs.
>>>>> However, their search system is broken.
>>>>> So instead I looked at the list of W3C vocabularies,[1] and only one
>>>>> (something called "Earl") did not use rdfs:isDefinedBy. All of the
>>>>> others did, and that list is:
>>>>> I looked at the Open Annotation vocabulary,[2] which I know is close to
>>>>> being completed, and it, too, uses rdfs:isDefinedBy.
>>>>> I think this shows that this *is* a W3C best practice.
>>>>> kc
>>>>> [1]
>>>>> [2]
>>>>>> On 1/24/16 4:07 PM, Irene Polikoff wrote:
>>>>>> There is no harm in using rdfs:isDefinedBy and may be some value in
>>>>>> it.
>>>>>> I am not totally sure what it is though.
>>>>>> In practice, it is very rarely used for instances. Because it is not
>>>>>> practical, I guess, to always carry this extra triple. It is sometimes
>>>>>> used for schemas, but certainly far from universally used. So, from
>>>>>> the
>>>>>> software perspective, it can┬╣t be relied on ┬ş unless the person who
>>>>>> writes software has full control over what schemas they use and how
>>>>>> they
>>>>>> look like.
>>>>>> As for living with other vocabularies in a triple store, this wouldn't
>>>>>> require rdfs:isDefinedBy. The best practice is to have each vocabulary
>>>>>> as a separate named graph and then one could always query for its
>>>>>> content in SPARQL using FROM or FROM GRAPH.
>>>>>> Irene Polikoff, CEO
>>>>>> TopQuadrant, Inc. <>
>>>>>> *Technology providers making enterprise information meaningful*
>>>>>> Blogs ÔÇ╣,
>>>>>> LinkedIn ÔÇ╣
>>>>>> Twitter -
>>>>>> From: Holger Knublauch <
>>>>>> <>>
>>>>>> Date: Sunday, January 24, 2016 at 6:45 PM
>>>>>> To: "
>>>>>> <>"
>>>>>> < <>>
>>>>>> Subject: Re: ISSUE-95 Discussions
>>>>>> Resent-From: <
>>>>>> <>>
>>>>>> Resent-Date: Sun, 24 Jan 2016 23:46:09 +0000
>>>>>>> No, rdfs:isDefinedBy is the way to link an RDF term with its
>>>>>>> ontology.
>>>>>>> My XSLT relies on that. It also lets vocab information live in a
>>>>>>> triple store with other vocabs. You can then get all the terms for a
>>>>>>> given vocab using a SPARQL query.
>>>>>> Again, I don't like carrying around extra triples just for the sake of
>>>>>> a
>>>>>> particular XSLT implementation. These triples are trivial to
>>>>>> auto-generate at any point in time. Having said this, for the purpose
>>>>>> of
>>>>>> making progress I will try to edit them in (although I expect this to
>>>>>> be
>>>>>> error-prone). Better would be to leave them out for now and put them
>>>>>> back in on the day prior to publication.
>>>>> --
>>>>> Karen Coyle
>>>>> m: 1-510-435-8234
>>>>> skype: kcoylenet/+1-510-984-3600
>>> --
>>> Karen Coyle
>>> m: 1-510-435-8234
>>> skype: kcoylenet/+1-510-984-3600

Received on Thursday, 28 January 2016 17:34:46 UTC