<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Dear Manuel,<div><br></div><div>I extract the root path for a class found in a BioPortal ontology by making use of the SPARQL endpoint. For this I send a query that iteratively collects the path. </div><div>An example query looks like this: </div><div><br></div><div><div><font face="Optima"><b>PREFIX rdfs: <<a href="http://www.w3.org/2000/01/rdf-schema#">http://www.w3.org/2000/01/rdf-schema#</a>> </b></font></div><div><font face="Optima"><b>PREFIX skos: <<a href="http://www.w3.org/2004/02/skos/core#">http://www.w3.org/2004/02/skos/core#</a>></b></font></div><div><font face="Optima"><b>SELECT * WHERE { GRAPH <<a href="http://bioportal.bioontology.org/ontologies/FMA">http://bioportal.bioontology.org/ontologies/FMA</a>> { <<a href="http://sig.uw.edu/fma#Brain">http://sig.uw.edu/fma#Brain</a>> rdfs:subClassOf ?parent.</b></font></div><div><font face="Optima"><b>OPTIONAL {?parent rdfs:label ?label}.</b></font></div><div><font face="Optima"><b>OPTIONAL {?parent skos:prefLabel ?prefLabel}.}} LIMIT 100</b></font></div></div><div><br></div><div>By getting the response for now I just select the last parent retrieved and set it to the child slot and do so until no parent is retrieved.</div><div><br></div><div>Tough there may be more than one paths from the root to a class and so I investigate the question how would I extract all.</div><div>One can collect them in the same manner as explained above. However, this doesn't seem to be very efficient.</div><div><br></div><div><div>The REST services allow to get all root paths. However, we want to stick to the SPARQL endpoint.</div><div>We were wondering how this is done there. </div><div><br></div><div>We experimented with the SPARQL 1.1 Proprty Paths for getting the root path and it is possible to use the "+" operator that gives all ancestors.</div></div><div>For example using stardog:</div><div><br></div><div><font face="Optima"><b>./stardog query -c <a href="snarl://localhost:5820/temp">snarl://localhost:5820/temp</a> -q "CONSTRUCT { ?s rdfs:subClassOf ?o } WHERE { ?s rdfs:subClassOf ?o. obo:OGMS_0000071 rdfs:subClassOf+ ?o }"</b></font></div><div><br></div><div>The query above delivers the paths that we need. Unfortunately the "+" operator is not yet allowed by the BioPortal SPARQL endpoint.</div><div><br></div><div>Are you going to update to the SPARQL 1.1 version? </div><div>Do you have any idea how this could be solved?</div><div><br></div><div>Thank you very much in advance!</div><div><br></div><div>Best regards,</div><div>Nikolina</div><div><br></div><div><a href="http://www.ifomis.org/">http://www.ifomis.org/</a></div></body></html>