Re: Version 1.0 of Bio2RDF and Chembl webapps released

On 30 June 2011 18:43, Matthias Samwald
<matthias.samwald@meduniwien.ac.at> wrote:
> Hi Peter,
>
> Great work! On the example page you provided
> (http://bio2rdf.org/page/geneid:12334) I also see properties such as
> http://purl.org/science/owl/sciencecommons/describes_gene_or_gene_product_mentioned_by
> which come from the Science Commons KB (and the HCLS Knowledge Base
> developed in the first charter of the HCLS interest group). Did those
> properties go into Bio2RDF because you imported some data from the Science
> Commons KB, or did you deliberately choose to re-use those properties
> because you considered them useful?

Those triples are directly sourced from
http://sparql.neurocommons.org/sparql , without changing the
properties.

>> If you want to make changes to any of the datasources, you can
>> normalise results (and denormalise queries) using rules. This version
>> allows you to use XSLT and SPARQL in addition to Regular Expressions
>> that were already supported. For example this now means that if there
>> are XML datasources, you can convert them to RDF using the
>> normalisation rules in the server. The software now uses Sesame 2.4.0
>> which contains support for SPARQL Query 1.1 so any SPARQL rules that
>> are applied to intermediate results can be transformed using the new
>> functions and language features. In particular, SPARQL 1.1 allows you
>> to create new URIs inside queries, so if you know that there are
>> literals in an rdf document that you could create a URI out of, you
>> can do it using a SPARQL normalisation rule for that datasource.
>
> Do you have an example of how this could be done with SPARQL 1.1?

According to the SPARQL 1.1 specifications, the following should
hypothetically work, but it doesn't seem to work right now with the
Sesame 2.4.0 library.

CONSTRUCT {
?myUri <http://bio2rdf.org/bio2rdf_resource:genesymbol> ?symbolUri .
} WHERE {
?myUri <http://purl.org/science/owl/sciencecommons/ggp_has_primary_symbol>
?primarysymbol .
bind(iri(concat("http://bio2rdf.org/symbol:",encode_for_uri(lcase(str(?primarySymbol)))))
AS ?symbolUri)}

BIND : http://www.w3.org/TR/sparql11-query/#bind
IRI : http://www.w3.org/TR/sparql11-query/#func-iri
CONCAT : http://www.w3.org/TR/sparql11-query/#func-concat
ENCODE-FOR-URI : http://www.w3.org/TR/sparql11-query/#func-encode
LCASE : http://www.w3.org/TR/sparql11-query/#func-lcase

Maybe I am doing something wrong so far. It is complaining about
something being wrong after concat but it looks okay to me.

>> In addition, if anyone wants to suggest a way to do any other rule
>> based normalisation I would be happy to extend the software to support
>> it. I have always had RIF rules in the back of my head, but have not
>> experimented with them yet. If anyone uses RIF rules in their work, it
>> would be great to get some example code to guide a future extension to
>> this software.
>
> Did you consider using SPARQL Inference Notation (SPIN,
> http://spinrdf.org/)? I don't think there is an implementation for Sesame
> out there yet, though.

I will look at it again. Is there an open source implementation by the
way? I have been using SPARQL CONSTRUCT queries to do virtually
everything that I thought SPIN could do, with a more familiar
notation. I didn't find the SPIN notation easy to understand.

Cheers,

Peter

Received on Thursday, 30 June 2011 11:07:58 UTC