W3C home > Mailing lists > Public > public-semweb-lifesci@w3.org > June 2007

Re: Using Labels in SPARQL

From: Chris Mungall <cjm@fruitfly.org>
Date: Fri, 1 Jun 2007 08:38:27 -0700
Message-Id: <C5D9B4B6-46F2-4D43-8ACD-EC183C4A815B@fruitfly.org>
Cc: public-semweb-lifesci hcls <public-semweb-lifesci@w3.org>
To: Bijan Parsia <bparsia@cs.man.ac.uk>

On Jun 1, 2007, at 3:31 AM, Bijan Parsia wrote:

> Looking at some of the queries in:
> 	http://esw.w3.org/topic/HCLS/Banff2007Demo? 
> action=AttachFile&do=get&target=Banff2007Part2.pdf
> I am reminded again of the practice of using gensyms for the URIs  
> of terms, e.g.,:
> 	?class rdfs:subClassOf go:GO_0008150

this isn't really a gensym but never mind - it's the stable  
identifier for the class, or rather a bastardization of the stable  
identifier to make it conform to the URI standard

> In Swoop, we added the ability for the display (e.g., class tree,  
> definitions) to replace URIs with the label of your (language) choice.

very nice it is too - I believe you added this on my request when I  
was playing with GO in Swoop back in the day

> I'm sure other tools do that as well. Obviously, a query creation  
> tool could do this as well.
> I was wondering if it would be worth adding some syntactic sugar to  
> sparql to support this style. Maybe something like
> PREFIX owl: <http://www.w3.org/2002/07/owl#>
> PREFIX go: <http://purl.org/obo/owl/GO#>
> PREFIX obo: <http://www.geneontology.org/formats/oboInOwl#>
> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
> LABELS obo:myEnglishLabels FOR <http://www.geneontology.org/formats/ 
> oboInOwl#>
> select  ?name  ?class ?definition
> from <http://purl.org/commons/hcls/20070416>
> where
> {   graph <http://purl.org/commons/hcls/20070416/classrelations>
>      {?class rdfs:subClassOf NiceNameForGO_0008150}
>     ?class rdfs:label ?name.
>     ?class obo:hasDefinition ?def.
>     ?def rdfs:label ?definition
>     filter(regex(?name,"[Dd]endrite"))
> }

wouldn't the argument have to be a literal? E.g.

LABELS obo:myLabels FOR <http://www.geneontology.org/formats/oboInOwl#>

?class rdfs:subClassOf "biological process"@en			(this is the label  
for GO:0008150)

> I'm not sure if we'd want to let that sugar percolate into the  
> rdfs:label queries. Then the query would look like:
> select  ?class ?definition
> from <http://purl.org/commons/hcls/20070416>
> where
> {   graph <http://purl.org/commons/hcls/20070416/classrelations>
>      {?class rdfs:subClassOf NiceNameForGO_0008150}
>     ?class obo:hasDefinition ?def.
>     filter(regex(?class,"[Dd]endrite"))
> }
> It just strikes me that all the label probing is beside the  
> actually application logic of the query and gets in the way.
> If one want to get the uri as well, a function could do that,  
> perhaps even in the head.

I'll bet Alan has some lisp macro facility to do this already in his  
LSW s-expression syntax sparql queries

Even though I'm not keen on specifying the extra triples in the query  
I'm not sure this warrants ad-hoc extensions to a standard. I'd  
rather see it part of a more general mechanism, such as a function in  
the head. It would feel more natural to write:

?class rdfs:subClassOf hasLabel("biological process"@en)

> Cheers,
> Bijan.
Received on Friday, 1 June 2007 15:38:50 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:20:27 UTC