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 :

[ARC2] Importer et exporter des données RDF, pas si simple ?


Sujet :

Frameworks

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Points : 21
    Points
    21
    Par défaut [ARC2] Importer et exporter des données RDF, pas si simple ?
    Bonjour

    Y a t'il une solution standard pour dumper les données RDF d'un triplestore sous un format exploitable, tel que RDF/XML, turtle ou n3 ?

    L'import ne pose aucun problème, puisque les triplestores que j'ai testé acceptent tous les formats de base (RDF/XML, turtle, etc).

    Mais une fois que j'ai une grande masse de triplets stockés dans ma base, en ressortir un dump du tout en RDF/XML, turtle semble très complexe ...

    J'utilise pour le moment ARC2. Ce triplestore propose via son API une méthode dump(), mais celle-ci me renvoie les données dans un format XML simple. Le dump ne peut donc pas être réimporté dans un autre triplestore (comme virtuoso par exemple) ...

    La seule solution "portable" (mais très lourde) que j'ai trouvé pour le moment pour cela, c'est de passer par des requêtes SPARQL du genre :

    CONSTRUCT {
    ?s ?p ?o .
    } WHERE {
    GRAPH ?g { ?s ?p ?o . FILTER(?g = 'http://uridemongraph')}
    }
    Je récupère ainsi mes triplets en RDF/XML. Mais bon, pour récupérer toutes mes données par ce biais, il faudrait que j’exécute la requête pour chacun des graphs qui sont stockés, et surement récupérer les données par blocs...

    C'est donc très lourd pour faire simplement un dump des données dans le but de les réimporter dans un autre triplestore ...

    Avez-vous des pistes pour l'export de triplets RDF ?

    Merci d'avance !

  2. #2
    Membre éprouvé
    Avatar de Sapience
    Homme Profil pro
    Consultant sémantique & data à sparna.fr
    Inscrit en
    Avril 2005
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant sémantique & data à sparna.fr
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 305
    Points : 915
    Points
    915
    Par défaut
    http://incubator.apache.org/jena/doc...o/iohowto.html ?

    En particulier :
    Model write(java.io.OutputStream out, java.lang.String lang)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Points : 21
    Points
    21
    Par défaut
    Merci pour ta réponse. Ce sont des méthodes spécifiques au projet Jena. Qu'en est-il de ce type d'exports avec ARC2 ?

    Je n'ai trouvé que la méthode dump() dans ARC2. Celle-ci permet de renvoyer l'ensemble des triplets (et l'uri du graph associé pour chacun) au format "SPOG".

  4. #4
    Membre éprouvé
    Avatar de Sapience
    Homme Profil pro
    Consultant sémantique & data à sparna.fr
    Inscrit en
    Avril 2005
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant sémantique & data à sparna.fr
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 305
    Points : 915
    Points
    915
    Par défaut
    Confondu ARQ de Jena et ARC2 (que je ne connais pas en fait) désolé
    Je ne connais pas le format du fichier SPOG, mais il n'y a pas moyen de le post-processer pour le transformer dans le format voulu ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Points : 21
    Points
    21
    Par défaut
    Si en effet, une de mes pistes est de post-processer ce fichier "SPOG". Il s'agit en fait du format SPARQL Query Results XML Format.

    Je récupère des éléments XML de ce genre, avec mes triplets et le graphe associé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        <result>
          <binding name="s">
            <uri>...</uri>
          </binding>
          <binding name="p">
            <uri>...</uri>
          </binding>
          <binding name="o">
            <uri>...</uri>
          </binding>
          <binding name="g">
            <uri>...</uri>
          </binding>
        </result>
    Il est donc assez facile de transformer ce dump en format RDF/XML ou turtle.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Points : 21
    Points
    21
    Par défaut
    Je me demandais aussi, quelles sont les sérialisations possibles pour les named graph (des quadruplets avec le contexte en plus donc) ?

    je me trompe peut-être mais je n'ai pas l'impression qu'il y a encore grand chose de clair sur le sujet pour le moment. Est-ce une bonne idée d'exploiter les named graph aujourd'hui ?

    ARC2 gère très bien cela (on peut faire un sparql un "LOAD <...> INTO <http://namedgraphuri>". Mais est-ce le cas des autres triplestore comme JENA ?

  7. #7
    Membre éprouvé
    Avatar de Sapience
    Homme Profil pro
    Consultant sémantique & data à sparna.fr
    Inscrit en
    Avril 2005
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant sémantique & data à sparna.fr
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 305
    Points : 915
    Points
    915
    Par défaut
    Il est donc assez facile de transformer ce dump en format RDF/XML ou turtle.
    Oui, en PHP je ne sais pas, mais en Java avec Sesame ou Jena il y a forcément quelque chose nativement pour parser ce format.

    Je me demandais aussi, quelles sont les sérialisations possibles pour les named graph (des quadruplets avec le contexte en plus donc) ?
    TriG (http://www4.wiwiss.fu-berlin.de/bizer/TriG/Spec/) ou TriX (http://www.w3.org/2004/03/trix/). Ces 2 formats sont gérables par Sesame nativement et avec Jena je crois via l'extension NG4J (http://www4.wiwiss.fu-berlin.de/bizer/ng4j/). Sesame et Jena gèrent également les graphes nommés dans leurs API.

    je me trompe peut-être mais je n'ai pas l'impression qu'il y a encore grand chose de clair sur le sujet pour le moment. Est-ce une bonne idée d'exploiter les named graph aujourd'hui ?
    Je dirais plutôt oui, c'est une bonne idée. RDF 1.1 doit normaliser l'utilisation des graphes nommés (http://www.w3.org/2011/01/rdf-wg-charter)

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Points : 21
    Points
    21
    Par défaut
    Tu as l'air très bien renseigné sur le sujet

    TriG c'est en quelque sorte une évolution de turtle, mais qui prend en compte les graphes nommés, sauf que cette sérialisation n'est pas (encore ?) standardisée par le W3C, c'est bien ça ?
    En tout cas, sous ARC2 ce format n'est pas pris en charge. Sous virtuoso à priori ça passe, mais c'est bien caché dans la doc ...


    Qu'en est-il du format nquad ? Ce n'est pas un format standardisé non plus ? Les fichiers dans ce format peuvent être importés dans virtuoso mais quid des autres triplestores ...

    Ce qui est bizarre, c'est que les graphes nommés semblent faire partis depuis longtemps de SPARQL.

  9. #9
    Membre éprouvé
    Avatar de Sapience
    Homme Profil pro
    Consultant sémantique & data à sparna.fr
    Inscrit en
    Avril 2005
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant sémantique & data à sparna.fr
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 305
    Points : 915
    Points
    915
    Par défaut
    TriG c'est en quelque sorte une évolution de turtle, mais qui prend en compte les graphes nommés, sauf que cette sérialisation n'est pas (encore ?) standardisée par le W3C, c'est bien ça ?
    Oui c'est ca. Mais si tu regardes bien, Turtle n'est qu'une recommendation en version draft (http://www.w3.org/standards/techs/rdf#w3c_all), et N3 une "team submission" qui n'est même pas encore rentré dans le process de recommendation du W3C (http://www.w3.org/TeamSubmission/n3/). En fait ces 2 standards sont normalisés "après coup", alors que déjà beaucoup d'implémentations existent. Donc à ce niveau-là je pense qu'il ne faut pas vraiment faire attention au status du standard par le W3C, mais avoir une approche pragmatique et voir si les outils que tu utilises le prenne en charge.

    Qu'en est-il du format nquad ? Ce n'est pas un format standardisé non plus ? Les fichiers dans ce format peuvent être importés dans virtuoso mais quid des autres triplestores ...
    Niveau standardisation, N-quads n'est pas rentré du tout dans les tuyaux du W3C. Par rapport aux outils : Ca rentre dans Jena (http://incubator.apache.org/jena/doc...n/io/riot.html), dans Virtuoso puisque tu le dis, pas dans Sesame. Mon avis : c'est très lourd puisque l'info de graphe est répétée pour chaque triplet; Ca va si tu as des petits fichiers, mais si tes données sont grosses, ca va exploser la taille des fichiers; c'est le niveau 0 de la serialisation RDF (lister tous les quads explicitement 1 par 1).

    Ce qui est bizarre, c'est que les graphes nommés semblent faire partis depuis longtemps de SPARQL.
    Hé oui, bizarre ça tiens, quand on y pense. Même si les named graph n'étaient pas standardisés, comme c'était très utilisé, ca a été rajouté dans SPARQL. Voilà encore un cas où le standard va suivre les implémentations, et non pas l'inverse. Le groupe sur la gestion de la Provenance des données au W3C a besoin des named graph (http://www.w3.org/2011/prov/wiki/Pro...eRDFNamedGraph), donc tout ca va gentiment se remettre à niveau à moyen terme.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Points : 21
    Points
    21
    Par défaut
    Merci pour toutes ces infos Sapience, les différents types de sérialisation sont plus clairs.
    Effectivement, dans ce domaine les standards semblent suivre après coup les implémentations qui sont faites par les outils du marché

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/02/2013, 09h13
  2. importer et exporter des données depuis excel
    Par thonyyzz dans le forum C++
    Réponses: 2
    Dernier message: 22/04/2008, 20h18
  3. importer et exporter des données
    Par denza1 dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/12/2004, 16h34

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