Bonsoir,
lors de l'affichage de mes données ils s'affichent avec leurs uri par exemple:
<http://lacot.org/public/owl/famille#Femme>
est ce qu'on peut pas seulement afficher le mot Femme sans http://lacot.org/public/owl/famille ?
Merci d'avance
Bonsoir,
lors de l'affichage de mes données ils s'affichent avec leurs uri par exemple:
<http://lacot.org/public/owl/famille#Femme>
est ce qu'on peut pas seulement afficher le mot Femme sans http://lacot.org/public/owl/famille ?
Merci d'avance
En java :
Voilà, ça affichera Femme sans afficher le reste de l'URI.
Code : Sélectionner tout - Visualiser dans une fenêtre à part System.out.println("Femme");
7susd bl'ham owsql wuul pô!
ce n'est plus simple que ça en fait, c'est pas ça ce que je veux, tu n'as pas compris mon problème
lors de l'affichage de mes données(extraction de mes données) à partir d'une requete select en utilisant "Sparql" ils s'affichent avec leurs uri par exemple:
<http://lacot.org/public/owl/famille#Femme>
est ce qu'on peut pas seulement afficher la donnée c'est à dire le mot Femme sans http://lacot.org/public/owl/famille ?
Pour cela il faut manipuler les namespaces. Je ne sais pas s'il existe des fonctions comme ca dans Jena, mais sinon c'est du java basique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 java.net.URI anURI = new URI("http://lacot.org/public/owl/famille#Femme"); // si on connait la racine sous la forme d'une URI java.net.URI rootURI = new URI("http://lacot.org/public/owl/famille#"); System.out.println(rootURI.relativize(anURI)); // sinon, sans se compliquer la vie System.out.println(anURI.toString().substring(rootURI.toString().length())); // si on ne connait pas la racine, on peut tenter ca if(anURI.toString().lastIndexOf("#") > -1) { // si c'est une URI avec un # System.out.println(anURI.toString().substring(anURI.toString().lastIndexOf("#"))); } else { // sinon on prend tout ce qui est après le dernier / System.out.println(anURI.toString().substring(anURI.toString().lastIndexOf("/"))); }
Bonjour,
Quel API utilisez-vous pour manipuler votre ontologie?
Si vous utilisez Jena, la fonction getLocalName() peut être utilisée.
Pas de grandeur pour qui veut grandir. Pas de modèle pour qui cherche ce qu'il n'a jamais vu.
La bonne réponse est probablement celle de Metafire18, mais comme on n'a aucun détail dans la question, c'est pas évident. Ma première réponse était volontairement sarcastique parce que ta question ne disait quasiment rien. On ne sait pas dans quel langage tu programmes, ni même si tu programmes car tu pourrais utiliser une interface type Snorq pour envoyer des requêtes SPARQL et tu voudrais peut-être que ces requêtes contiennent directement le nom local. On ne sait pas si tu veux résoudre le problème spécifiquement pour ce namespace ou pour n'importe quel namespace, on ne sait pas si il faut le résoudre pour le cas où le namespace finit par un '/' ou bien seulement pour les URIs avec un '#'. On ne sait pas ce que tu entends par "afficher" : afficher sur la console ou bien dans une interface graphique ? Et d'abord, est-ce que c'est vraiment un problème d'affichage ? Il me semble que tu veux simplement récupérer le nom local, comme indique Metafire18.
Bref, en tout cas, au cas où, voici une requête SPARQL 1.1 qui renvoie le local name pour des URI de type '#' :
Pour les URI de type '/', c'est compliqué car le '/' peut être présent à plusieurs endroits de l'URI. À vrai dire, je ne sais pas comment faire dans ce cas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT ?localName WHERE { <x> <y> ?uri # <-- peu importe la requête, pourvu qu'elle cherche un URI BIND (STRAFTER(STR(?uri),"#") AS ?localName) FILTER (isIRI(?uri)) }
7susd bl'ham owsql wuul pô!
tout d'abord,
merci pour vos réactivité,
j'ai essayé tous vos réponses mais j'ai pas réussi malheureusement à afficher mes données sans leur URI.
je me demande comment je peux utiliser la méthode getLocalName() dans une requête sparql puisque cette méthode n'est pas définie dans ResultSet
Merci
enfin, j'ai résolu mon problème grâce a ce lien
http://stackoverflow.com/questions/1...02167#12802167
Bon travail à tous
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager