IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Frameworks Discussion :

[SPARQL] Éditer les Object-data Properties [Jena]


Sujet :

Frameworks

  1. #1
    Membre régulier Avatar de kululu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Points : 85
    Points
    85
    Par défaut [SPARQL]Object-data Properties (edit)
    Bonjour

    Mon but est le suivant :
    Je liste toutes les classes de mon modèle et ensuite pour chaque classe j'affiche les object properties et les data properties.

    J'utilise l'api jena et j'ai un petit soucis pour la seconde tache :

    La methode ListDeclaredProperties ne renvoie pas exactement ce que je voudrais en effet certaines propriétés possèdent plusieurs "Domain" il sera alors représenté par une collection de classe dans le fichier owl et donc la propriété ne sera pas listé avec cette méthode.

    Comment faire pour que si la classe est présente dans la collection de classe d'une propriété alors cette dernière sera listé dans la méthode maClasse.ListDeclaredProperties()

    Merci de votre aide .

  2. #2
    Membre régulier Avatar de kululu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Points : 85
    Points
    85
    Par défaut
    J'ai trouver une solution en parcourant alors la liste de collection.

    Mais entre temps j'ai eu une autre idée: le faire par requête SPARQL.

    Je suis pas un pro en SPARQL alors j'aimerais savoir déjà si c'est possible et ensuite savoir pourquoi la requête suivante ne me renvoie que Thing :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT ?range 
    WHERE { monOwl:test rdfs:range ?range }
    J'ai un ObjectProperty test qui a comme range test1 et test2

    merci pour votre aide

  3. #3
    Membre actif
    Avatar de April Fool
    Homme Profil pro
    Fou d'avril
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Fou d'avril

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 215
    Points
    215
    Par défaut
    Pour lister les propriétés rattachées à une classe par le domaine avec une requête SPARQL, il faudrait plutôt écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ?prop
    WHERE { ?prop  rdfs:domain  ont:maClasse }
    Cela dit, il y a également des propriétés supplémentaires pouvant être obtenues par inférence. Par exemple, `owl:Thing` est nécessairement dans le domaine de toute propriété, même si ce n'est pas précisé explicitement.
    7susd bl'ham owsql wuul pô!

  4. #4
    Membre régulier Avatar de kululu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Points : 85
    Points
    85
    Par défaut
    Merci pour la réponse, j'ai dû testé cette solution dans le tas et cela me renvoie un tableau vide.


    Edit : oops cela viens de mon code Java un peu bancal
    Donc oui merci encore ça marche mais je rencontre le même problème qu'à mon post initial c'est à dire que si le "domain" d'une classe est une collection (en sachant que la classe en question est contenue dans la collection) la requête ne renverra pas cette solution.

  5. #5
    Membre actif
    Avatar de cotechnoe
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 73
    Points : 299
    Points
    299
    Par défaut Faire une recherche à partir de propriétés
    On reviens à la question d'origine que je reformule pour m'assurer que l'on se comprenne bien.

    Ton ontologie possède un ensemble de classes et de propriétés et tu désires créer une méthode qui liste l'ensemble des propriétés qui a pour domaine la classe propriétaire de la méthode.

    Voici en pseudo-code ce que j'implanterais en OWL-API mais que je ne peux implanter (...par ignorance du langage...) en Jena ... à toi de traduire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Soit la Class C  /* la classe propriétaire de la méthode ListDeclaredProperties */
    Soit une collection RESU /* contenant la liste des propriétés contenant C dans son domaine */
    Pour-tout Property P /*de l'ontologie */
        pour-tout Class CD = P.getDomain() /* la collection de classe appartenant au domaine de P */
              si (CD.getId() == C.getId())
              alors RESU.add(P)
        fin-pour-tout
    fin-pour-tout

  6. #6
    Membre régulier Avatar de kululu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Points : 85
    Points
    85
    Par défaut
    Oui c'est en quelque sorte quelque chose dans le genre (par que pour le domaine pour le range aussi). Mais j'ai réussi à implémenter un algo qui fait ça en java mais c'est pas très "instinctif" je pensais qu'en le faisant par requête SPARQL ça aurai été plus clair et plus simple dans l'implémentation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'une Prodédure ayant pour arguments les contrôles Data
    Par Blunet dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/06/2006, 10h55
  2. Comment gérer les objects déclarer en HTML dans un script JAVASCRIPT?
    Par Thauglor dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/04/2006, 14h54
  3. [Interbase 5] impossible d'éditer les données
    Par inconu dans le forum InterBase
    Réponses: 4
    Dernier message: 18/08/2005, 13h10
  4. Réponses: 13
    Dernier message: 22/07/2005, 18h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo