RE: SKOS and MeSH qualifiers

Hi Robert,

Many thanks for this, I've thought that MeSH is an important test case for SKOS for some time.  

One way to represent the relationship between a MeSH descriptor and a MeSH qualifier would be to model both descriptors and qualifiers as resources of type skos:Concept, and then to create a custom semantic relation property e.g. mesh:allowedQualifier as a sub-property of skos:related.

E.g. (hope Notation3 syntax is OK?) ...
---

@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix mesh: <http://www.nlm.nig.gov/mesh/schema#> .
@prefix md: <http://www.nlm.nig.gov/mesh/descriptors#> .
@prefix mq: <http://www.nlm.nig.gov/mesh/qualifiers#> .

# Declare a sub-property ...

mesh:allowedQualifier a rdf:Property;
	rdfs:subPropertyOf skos:related;
.  

# Then some instance data e.g. ...

md:Calcimycin a skos:Concept;
	mesh:allowedQualifier mq:standards;
	# other allowed qualifiers ...
.

---

The other thing I'm thinking is that certain families of mesh descriptors will all have the same allowed qualifiers.  If this relates to the type of the concept (and MeSH does include a basic type scheme if I remember rightly?) then you could declare classes of concept for each of these types, with OWL restrictions stating the allowed qualifiers.

E.g. ...
---
# Same prefixes as above

# Declare a class of concepts ...

mesh:DrugConcept a rdfs:Class;
	rdfs:subClassOf skos:Concept;
	rdfs:subClassOf 
	[
		a owl:Restriction;
		owl:onProperty mesh:allowedQualifier;
		owl:hasValue mq:standards;
	];
	rdfs:subClassOf 
	[
		a owl:Restriction;
		owl:onProperty mesh:allowedQualifier;
		owl:hasValue mq:administration%20&%20dosage;
	];
	# one restriction for each allowed qualifier for this class of concepts ...
.

# Then all you need to do is declare ...

md:Calcimycin a mesh:DrugConcept .

---

This means you don't have to repeatedly declare the set of allowed qualifies for each concept.

Personally I wouldn't use the collections vocabulary (skos:Collection, skos:member) to do this sort of thing, as the collections vocab is intended for a specific use case (node labels).

How does that sound?

Cheers,

Al.







> -----Original Message-----
> From: public-esw-thes-request@w3.org
> [mailto:public-esw-thes-request@w3.org]On Behalf Of Robert Watkins
> Sent: 08 July 2005 14:53
> To: public-esw-thes@w3.org
> Subject: SKOS and MeSH qualifiers
> 
> 
> 
> SKOS was brought to my attention yesterday, and I've been looking at
> it in relation to the controlled vocabulary with which I have the most
> experience, namely MeSH (Medical Subject Headings). For the 
> most part it is
> immediately evident how to represent MeSH using SKOS, but one 
> aspect of MeSH,
> qualifiers, makes me want to use SKOS differently that what 
> appears right at
> first glance. For anyone not familiar with MeSH, here is a 
> brief description
> of MeSH qualifiers from the MeSH site (http://www.nlm.nig.gov/mesh/):
> 
>   "There are 83 topical qualifiers used for indexing and cataloging in
>   conjunction with descriptors. Qualifiers afford a 
> convenient means of
>   grouping together those citations which are concerned with 
> a particular
>   aspect of a subject."
> 
> MeSH descriptors are the main concepts in MeSH, and when 
> searching with MeSH
> one usually selects a descriptor and may restrict the search 
> using one or more
> of the qualifiers that are allowed for that descriptor.
> 
> The most obvious way I could see to represent qualifiers 
> using SKOS would be
> to use collections, with each descriptor that allows a 
> particular qualifier
> as a member of that collection. So for the qualifiers 'standards' and
> 'administration & dosage', and the descriptor 'Calcimycin':
> 
> <skos:Concept 
> rdf:about="http://www.nlm.nig.gov/mesh/descriptors#Calcimycin">
> 	<skos:prefLabel>Calcimycin</skos:prefLabel>
> </skos:Concept>
> 
> <skos:Collection>
> 	<rdfs:label>standards</rdfs:label>
> 	<skos:member 
> rdf:resource="http://www.nlm.nig.gov/mesh/descriptors#Calcimycin" />
> 	<!-- other descriptors that allow the qualifier 'standards' -->
> </skos:Collection>
> 
> <skos:Collection>
> 	<rdfs:label>administration &amp; dosage</rdfs:label>
> 	<skos:member 
> rdf:resource="http://www.nlm.nig.gov/mesh/descriptors#Calcimycin" />
> 	<!-- other descriptors that allow the qualifier 
> 'administration & dosage' -->
> </skos:Collection>
> 
> What I was wondering is whether it would be possible to 
> represent that same
> relationship inversely. That is, not to list the members of 
> the qualifier
> collections within the skos:Collection element, but rather to 
> list, within
> a descriptor's skos:Concept element, which collections that 
> descriptor is
> a member of (note the use of the imaginary element skos:isMemberOf):
> 
> <skos:Concept 
> rdf:about="http://www.nlm.nig.gov/mesh/descriptors#Calcimycin">
>     <skos:prefLabel>Calcimycin</skos:prefLabel>
> 	<skos:isMemberOf 
> rdf:resource="http://www.nlm.nig.gov/mesh/qualifiers#standards" />
> 	<skos:isMemberOf 
> rdf:resource="http://www.nlm.nig.gov/mesh/qualifiers#administr
> ation%20&%20dosage" />
> </skos:Concept>
> 
> <skos:Concept 
> rdf:about="http://www.nlm.nig.gov/mesh/qualifiers#standards">
> 	<skos:Collection>
> 		<rdfs:label>standards</rdfs:label>
> 	</skos:Collection>
> </skos:Collection>
> 
> <skos:Concept 
> rdf:about="http://www.nlm.nig.gov/mesh/qualifiers#administrati
> on%20&%20dosage">
> 	<skos:Collection>
> 		<rdfs:label>administration &amp; dosage</rdfs:label>
> 	</skos:Collection>
> </skos:Collection>
> 
> This is more in line with the way MeSH is described with its 
> own DTDs, where
> each descriptor has a list of allowed qualifiers. Of course 
> the idea is not
> to try to bend SKOS every which way so that it looks like 
> MeSH, but this could
> be a useful construct for other controlled vocabularies.
> 
> Comments? (Flames?)
> -- Robert
> 
> --------------------
> Robert Watkins
> rwatkins@foo-bar.org
> --------------------
> 
> 

Received on Monday, 11 July 2005 12:07:06 UTC