Est-il possible de filtrer les résultats contenant un URI non résoluble dans la requête SPARQL?Comment filtrer les URI non-résolvables sur une requête SPARQL?
Un exemple: je fais la requête suivante (critère d'évaluation: http://linkeddata.systems:8890/sparql):
PREFIX RO: <http://www.obofoundry.org/ro/ro.owl#>
PREFIX SIO: <http://semanticscience.org/resource/>
PREFIX EDAM: <http://edamontology.org/>
PREFIX PHIO: <http://linkeddata.systems/ontologies/SemanticPHIBase#>
PREFIX PUBMED: <http://linkedlifedata.com/resource/pubmed/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT DISTINCT ?disn_1 ?label ?rel ?valor
WHERE { ?disn_1 ?rel ?valor . ?disn_1 rdfs:label ?label FILTER((?disn_1 = <http://linkeddata.systems/SemanticPHIBase/Resource/host/HOST_00561>))}
Dans les résultats, comme vous pouvez le voir, il est variable valeur un triple qui contient un URI non résoluble? (texte:/hostncbitaxid /). Je voudrais savoir s'il existe un FILTRE spécifique qui peut être ajouté dans la requête SPARQL pour supprimer ces résultats avec des URI non-résolvables. Je rencontre des problèmes avec l'API que j'utilise pour traiter ces résultats en C# car elle renvoie une exception due aux URI non résolvables, donc je voudrais les filtrer dans la requête SPARQL (si possible).
Salut Joshua, merci pour votre réponse. J'ai déjà fait quelque chose comme ça, mais le problème est qu'il filtre l'un des résultats que ce n'est pas un URI (concrètement, celui où? Valor est "" Host - null - HOST_00561 "@en". Est-il possible de filtrer uniquement les valeurs de? valor avec le type "URI" et que, comme vous l'avez dit, ne commence pas par http? – alejandrorg
@alejandrorg Bien sûr, il suffit de changer le filtre à 'filter (! isURI (? x) || strstarts (str (? x), "http")) '. –