web de données

Comment utiliser plusieurs triplestores dans Datalift

En standard Datalift utilise deux triplestores

Le premier est le triplestore interne, celui où sont publiées toutes les sources converties en RDF. C’est le 3e étage de l’ascenseur de données Datalift. La vocation de cet espace est d’être utilisé pour les travaux intermédiaires. Le second est le triplestore externe, c’est dans celui-ci que sont publiées les données finalisées et donc prêtes pour être exploitées par les destinataires d’un projet d’élévation de données.

Détaillons un peu. Si vous devez relier plusieurs sources Open Data, vous commencerez par les ajouter comme sources dans un projet Datalift. Puis vous convertirez chacune d’elle en RDF et les publierez dans le triple store interne. Lorsque vous les aurez interconnectées pour produire un unique jeu de données liées, du linked data ou du linked open data, vous publierez ce résultat dans le triple store externe.

Cette dernière opération est réalisée en utilisant le module « Publication vers le RDF store public ».

On trouve dans le répertoire C:\Users\{vous}\AppData\Roaming\Datalift\conf, le fichier de paramètres « datalift-application.properties » où sont placées les caractéristiques de ces deux triplestores. Leurs noms sont réservés : « data » pour le triplestore public , « internal » pour le triplestore interne (ou privé). Il vous est possible de leur donner le libellé de votre choix. Par exemple :

internal.repository.label = Triple Store interne

Datalift permet aussi d’utiliser plus de deux triplestores

Attention : ceci est possible à partir de la version 0.8.1j.

Abordons cet aspect dans le cas où vous utilisez un PC sous Windows et des triplestores gérés par le Workbench de Sesame. C’est le cas standard si vous avez téléchargé Datalift (www.datalift.org) et ne l’avez pas modifié.

Commencez par récupérer le fichier « openrdf-workbench.war », il s’agit du war qui contient, comme son nom l’indique, le workbench de l’openRDF de Sesame. Dans le site http://rdf4j.org/ allez dans la section réservée au téléchargement de Sesame et prenez la version 2.7.3. Dans le fichier openrdf-sesame-2.7.3-sdk.zip obtenu, vous allez trouver, en le dézippant, le war recherché.

Maintenant, avant de lancer Datalift, placez le fichier « openrdf-workbench.war » dans le répertoire .\Datalift\webapps où se trouve déjà « datalift.war » et « openrdf-sesame.war ». Lancez maintenant Datalift.

Vous disposez ainsi de l’interface d’administration de Sesame et vous pourrez agir directement sur vos triplestores. Pour y accéder, l’URL locale est :

http://localhost:9091/openrdf-workbench/

Créer un nouveau triplestore

Vous allez maintenant pouvoir créer un nouveau triplestore.

  • Dans le navigateur, ouvrez la page http://localhost:9091/openrdf-workbench/
  • Cliquez « new repository »
  • Donnez le type « In Memory Store »
  • Cliquez sur Next
  • Donnez maintenant un nom au nouveau triplestore (par exemple « NewTS ») et un intitulé.
  • Laissez « Persist » à « Yes »
  • Donnez la valeur « 1000 » à « Sync Delay »
  • Cliquez sur Create

Paramétrer le nouveau triplestore

  • Allez dans le répertoire C:\Users\{vous}\AppData\Roaming\Datalift\conf
  • Ouvrez le fichier « datalift-application.properties »
  • Allez dans la section des repositories
  • A la ligne de la clef « datalift.rdf.repositories », ajoutez le nom du nouveau triplestore après une virgule.

Par exemple :

datalift.rdf.repositories       = data, internal, newtriplestore

  • Puis ajouter la clef repository.url de ce nouveau triplestore en lui spécifiant le nom que vous lui avez donné dans le workbench sesame.

Par exemple, avec l’ID donné plus haut, c’était NewTS,

newtriplestore.repository.url       = \

http://localhost:${datalift.port}/openrdf-sesame/repositories/ NewTS

  • Si ce doit être un triple externe, spécifiez-le comme ceci

newtriplestore.repository.public     = true

  • Et donnez-lui pour finir un intitulé, celui qui apparaîtra dans le SPARQL Endpoint de Datalift. Par exemple :

newtriplestore.repository.label     = Mon Store

Relancer Datalift

  • Stoppez et relancez Datalift
  • Veillez, le cas échéant, à bien vider le cache de votre navigateur.

Utilisation des Triples Stores internes

Datalift ne peut publier que dans un seul TS interne. En revanche, si vous avez plusieurs TS interne, vous pouvez requêter dans celui de votre choix en l’indiquant dans le SPARQL endpoint. Si vous souhaitez publiez dans un autre TS interne, vous devez stopper Datalift, modifier le fichier de configuration et redémarrer Datalift.

Utilisation des Triples Stores externes

Lorsque vous publiez une source dans un triple store externe, s’il y en a plusieurs, Datalift attend que vous indiquiez lequel. Comme pour les TS internes, vous pouvez requêter dans le TS externe de votre choix en l’indiquant dans le SPARQL endpoint.

Pour en savoir plus, pourquoi ne pas devenir membre de l’association Datalift et suivre la user-list ?

 


Aide à la traduction de l’arménien classique avec DataLift (2)

Pour combler une partie des manques du premier dictionnaire utilisé, j’ai traduit et ajouté le glossaire qu’Antoine Meillet donnait en 1913 à la fin de son fameux Altarmenisches Elementachbuch. J’ai opté pour une structure très simple : le mot et sa définition.

Nous avons donc maintenant 4 jeux de données :

ahv : livre, chapitre, rang, mot
lemme : mot, lemme, analyse
dict : source, uri, mot, prononciation, traduction
meillet : mot, definition

Dans la requête suivante, la clause UNION permet de prendre en compte les deux dictionnaires, les BIND permet de ramener les résultats sur une même variable :

PREFIX P-TEXTE: <http://localhost:9091/project/armenien/source/ahv-csv-rdf-1#>
PREFIX P-LEMME: <http://localhost:9091/project/armenien/source/lemme-csv-rdf-1#>
PREFIX P-DICT: <http://localhost:9091/project/armenien/source/dict-hy-fr-csv-rdf-1#>
PREFIX P-MEILL: <http://localhost:9091/project/armenien/source/meillet-csv-rdf-1#>

SELECT ?rang ?mot ?traduction {
?s1 P-TEXTE:mot ?mot;
P-TEXTE:chapitre "ch1.2";
P-TEXTE:rang ?rang.

OPTIONAL {
?s2 P-LEMME:mot ?mot;
P-LEMME:lemme ?lemme;
P-LEMME:analyse ?analyse.

{ ?s3 P-DICT:mot ?lemme;
P-DICT:traduction ?trad1.
BIND (concat("C: ",?analyse," ",?trad1) as ?traduction)
} UNION
{ ?s4 P-MEILL:mot ?lemme;
P-MEILL:definition ?trad2.
BIND (concat("M: ",?trad2) as ?traduction)
} }

}
ORDER BY ?rang
LIMIT 35

Les 35 premiers résultats sont :

1,արդ,"C: adv. 1) or conj., 2) maintenant adv."
1,արդ,M: (§ 171); tout à l'heure; maintenant; or; donc.
1,արդ,M: -ոյ forme; ornement.
2,իւրով,M: (pass. § 72); sien ; le gén. pl. իւրանց permet de traduire ‘leur’ (§ 76) ; իւր est aussi le gén. du réflexif (§ 76).
3,արեամբն,C: noun.ins.sg.def. sang nm.
3,արեամբն,M: -եան sang; αἷμα.
4,փրկեցելոյ,
5,զմեզ,M: (pronom; § 75); nous.
6,տեառն,"C: noun.gen.dat.sg. maître, seigneur, propriétaire nm."
6,տեառն,M: տեառն instr. տերամբ; nom. pl. տեարք; § 59 h; seigneur; κύριος (habituellement abrévié ՟տր [ պատիւ; § 26; rem. 4]; lorsqu'il s'agit de Dieu – de տի-այր ; cf. տի-կին).
7,եւ,C: conj. et conj.
7,եւ,M: (§ 164); aussi; et; même.
8,տուեալ,"C: verb.pfv.nom.acc.sg. 1) belle-soeur nf. 2) donner, livrer, offrir vt."
9,զհոգին,"C: noun.nom.acc.sg. 1) esprit nm., âme nf., 2) personne nf."
9,զհոգին,M: -ւոյ; -ւով (§ 46); esprit; πνεῦμα (cf. ոգի; §27 C).
10,իւր,M: (pass. § 72); sien ; le gén. pl. իւրանց permet de traduire ‘leur’ (§ 76) ; իւր est aussi le gén. du réflexif (§ 76).
11,փոխանակ,C: noun.nom.acc.sg. au lieu de prép.
11,փոխանակ,M: adv. (avec gén.) à la place de; փլայ (§ 109); je m'écroule; je tombe en ruine (cf. փուլ).
11,փոխանակ,M: emprunt (cf. փոխեմ).
12,հոգւոյս,"C: noun.gen.dat.abl.sg.poss1. 1) esprit nm., âme nf., 2) personne nf."
12,հոգւոյս,M: -ւոյ; -ւով (§ 46); esprit; πνεῦμα (cf. ոգի; §27 C).
13,մերոյ,C: pron.adj.gen.sg. notre adj.
13,մերոյ,M: (adj. poss. § 72); notre.
14,եւ,C: conj. et conj.
14,եւ,M: (§ 164); aussi; et; même.
15,զմարմինն,C: noun.nom.acc.sg. corps nm.
15,զմարմինն,M: մարﬓոյ corps; chair; σῶμα.
16,իւր,M: (pass. § 72); sien ; le gén. pl. իւրանց permet de traduire ‘leur’ (§ 76) ; իւր est aussi le gén. du réflexif (§ 76).
17,փոխանակ,C: noun.nom.acc.sg. au lieu de prép.
17,փոխանակ,M: adv. (avec gén.) à la place de; փլայ (§ 109); je m'écroule; je tombe en ruine (cf. փուլ).
17,փոխանակ,M: emprunt (cf. փոխեմ).
18,մարմնոյս,C: noun.gen.dat.abl.sg.poss1. corps nm.
18,մարմնոյս,M: մարﬓոյ corps; chair; σῶμα.
19,մերոյ,C: pron.adj.gen.sg. notre adj.
19,մերոյ,M: (adj. poss. § 72); notre.


Aide à la traduction de l’arménien classique avec DataLift

Depuis mon dernier post relatif à l’analyse grammaticale automatique de l’arménien classique avec DataLift, j’ai ajouté quelques petits ingrédients pour faire de la traduction. Au final, ce sont donc trois jeux de données que j’injecte dans la plateforme : une tokennisation d’un texte (le début du livre V de la version arménienne de l’Adversus Haereses d’Irénée de Lyon), une base de lemmatisation et un dictionnaire. Les trois sont des aux formats CSV dont les structures sont :

ahv : livre, chapitre, rang, mot
lemme : mot, lemme, analyse
dict : source, uri, mot, prononciation, traduction

La liaison est évidemment faite sur le « mot ». Voici une requête destinée à la traduction des 20 premiers mots du chapitre 1.2 :

PREFIX P-TEXTE: <http://localhost:9091/project/armenien/source/ahv-csv-rdf-1#>
PREFIX P-LEMME: <http://localhost:9091/project/armenien/source/lemme-csv-rdf-1#>
PREFIX P-DICT: <http://localhost:9091/project/armenien/source/dict-hy-fr-csv-rdf-1#>

SELECT ?rang ?mot ?analyse ?traduction {
?s1 P-TEXTE:mot ?mot;
P-TEXTE:chapitre "ch1.2";
P-TEXTE:rang ?rang.

OPTIONAL {
?s2 P-LEMME:mot ?mot;
P-LEMME:lemme ?lemme;
P-LEMME:analyse ?analyse.

?s3 P-DICT:mot ?lemme;
P-DICT:traduction ?traduction.
} }
ORDER BY ?rang
LIMIT 20

Comme vous pouvez le voir, le résultat est une bonne aide :

1; արդ; adv.; "1) or conj.; 2) maintenant adv."
2; իւրով; ;
3; արեամբն; noun.ins.sg.def.; sang nm.
4; փրկեցելոյ; ;
5; զմեզ; ;
6; տեառն; noun.gen.dat.sg.; "maître; seigneur; propriétaire nm."
7; եւ; conj.; et conj.
8; տուեալ; verb.pfv.nom.acc.sg.; "1) belle-soeur nf. 2) donner; livrer; offrir vt."
9; զհոգին; noun.nom.acc.sg.; "1) esprit nm.; âme nf.; 2) personne nf."
10; իւր; ;
11; փոխանակ; noun.nom.acc.sg.; au lieu de prép.
12; հոգւոյս; noun.gen.dat.abl.sg.poss1.; "1) esprit nm.; âme nf.; 2) personne nf."
13; մերոյ; pron.adj.gen.sg.; notre adj.
14; եւ; conj.; et conj.
15; զմարմինն; noun.nom.acc.sg.; corps nm.
16; իւր; ;
17; փոխանակ; noun.nom.acc.sg.; au lieu de prép.
18; մարմնոյս; noun.gen.dat.abl.sg.poss1.; corps nm.
19; մերոյ; pron.adj.gen.sg.; notre adj.
20; եւ; conj.; et conj.

La base de lemmatisation est incomplète, l’utilisation de la clause OPTIONAL est donc bien utile pour faire tout de même apparaître les mots non traduits. Une traduction aboutie de ce passage est : « Donc, le Seigneur nous a sauvés par son propre sang, donnant sa propre Âme pour notre âme, sa propre chair pour notre chair, et »
A suivre…


Analyse grammaticale automatique de l’arménien classique avec DataLift

Je me suis demandé combien de temps cela me prendrait de faire une analyse grammaticale … Ca ne m’a pris que 10 minutes. Voici comment (et vous pourrez vous y essayer aussi).

  1. Installer Datalift, il suffit de télécharger Datalift ici et de le deziper
  2. Vous créez un projet, appelons-le « armenien »
  3. Vous ajoutez la première source, ce sera un texte arménien tokennisé (voir mon post précédent sur la tokennisation de l’arménien). Là j’ai choisi la préface du livre V de l’Adversus Haereses d’Irénée de Lyon (voir le post où je l’ai posté). Avec le tokenniseur, j’ai créé un CSV avec 3 colonnes (chapitre ; rang ; mot). Je l’ai appelé : preface.csv
  4. Vous ajoutez la deuxième source, là j’ai pris mon CSV de lemmisation. Il a 3 colonnes aussi (mot ; lemme ; analyse). Je l’ai appelé : lemmisation.csv
  5. Vous élevez les deux jeux de données pour en faire des sources RDF. Pour l’élévaton de preface.csv, j’ai demandé le changement de type de la colonne « rang » pour que son contenu soit des entiers. J’ai donc obtenu ainsi : preface-csv-rdf-1 et lemmisation-csv-rdf-1
  6. Il ne reste plus qu’à interconnecter. J’ai écrit la requête d’interconnexion suivante :
    PREFIX P-LEMME: <http://localhost:9091/project/armenien/source/lemmisation-csv-rdf-1#>
    PREFIX P-TEXTE: <http://localhost:9091/project/armenien/source/preface-csv-rdf-1#>

    SELECT ?rang ?mot ?lemme ?analyse WHERE {
    ?s P-TEXTE:mot ?mot;
    P-TEXTE:rang ?rang.
    ?s2 P-LEMME:mot ?mot;
    P-LEMME:lemme ?lemme;
    P-LEMME:analyse ?analyse.
    }
    ORDER BY ?rang

  7. J’ai opté pour une sortie en CSV. Je vous recopie les premières lignes

    rang,mot,lemme,analyse
    2,սիրելի,սիրել,verb.pot.nom.acc.loc.sg.
    3,ամենայն,ամենայն,pron.nom.acc.sg.
    5,ի,ի,prep.
    6,չորս,չորք,num.acc.loc.pl.
    7,գիրս,գիր,noun.acc.loc.pl./nom.acc.sg.poss1.
    8,յառաջ,յառաջ,adj.
    9,քան,քան,conj./prep.
    10,զայս,այս (սա),pron.acc.sg.
    11,քեզ,դու,pron.acc.dat.sg.
    12,առաքեալս,առաքել,verb.pfv.acc.loc.pl./nom.acc.loc.sg.poss1.
    13,ի,ի,prep.
    14,մէնջ,մեք,pron.abl.pl.
    15,եւ,եւ,conj.
    17,նոցա,նա,pron.gen.dat.abl.pl.
    18,յայտնի,յայտնի//յայտնել,adj.nom.acc.loc.sg.//verb.pres.3per.sg.pass.
    19,երեւեցելոց,երեւել,verb.pfv.gen.dat.abl.pl.
    20,եւ,եւ,conj.

Et voilà, le tour est joué ! Chaque ligne commence par le rang du mot analysé dans le texte de départ. Vous voyez ainsi que le premier mot n’est pas présent. Cela signifie tout simplement que cette forme du mot n’est pas renseigné dans mon lemmisateur. Le 16e est dans le même cas.

Voilà à quoi peut servir Datalift, dans le monde de la linguistique.

1 Comment more...

Petit panorama d’outils sur les ontologies : les traducteurs

Les ontologies sont codées à l’aide de langages particuliers. Le plus connu est OWL. Sa page officielle au W3C est ici. Fin 2012, une recommandation du W3C présentait OWL 2.

Les ontologies peuvent aussi représentées en UML, ou encore graphiquement… On se demande alors naturellement s’il n’existe pas des traducteurs pour passer d’une expression à une autre. Une partie de la réponse se trouve déjà dans les éditeurs d’ontologie et les modeleurs d’ontologie.

Il existe des outils totalement dédiés à la traduction. Je ne les ai pas essayé, mais je suis intéressé par vos retours d’expérience. Parmi ces outils, il y a :

  • UML2OWL, qui se présente comme un « Fast Transformation Tool ».
  • sql2owl, un outil qui facilite la generation de modèles OWL à partir de modèle de bases de données.

Si vous en connaissez d’autres, merci d’avance de me les signaler, je mettrai à jour ce post.


Petit panorama d’outils sur les ontologies : aides

La création d’une ontologie n’est pas chose facile. La faire évoluer non plus, tout comme la référencer, ou encore la cataloguer, etc. Alors où trouver de l’aide ? Qui peut répondre à vos questions ? Pour apporter des réponses aux courageux ontologues débutants, il y a quelques bonnes adresses (mais elles sont rares) où poser ses questions et où lire des réponses aux questions que d’autres ont posées.

Si vous connaissez d’autres sites d’entre-aide, merci d’avance de me les signaler, je mettrai à jour ce post.


Petit panorama d’outils sur les ontologies : les modeleurs

Ces outils permettent de concevoir une ontologie en la modelant. L’UX et l’ergonomie de ces outils est leur principal valeur ajoutée. En voici quelques-uns…

Catégorie : ceux qui marchent

Catégorie : les morts-vivants, on ne sait pas trop

Catégorie : les disparus



Petit panorama d’outils sur les ontologies : les browsers

Ce ne sont pas vraiment des éditeurs puisque leur propos est de naviguer dans une ontologie pour en découvrir les coins et les recoins. Ce sont des outils utiles pour comprendre une ontologie et pour l’utiliser. L’UX et l’ergonomie de ces outils est leur principal valeur ajoutée. En voici quelques-uns…

Catégorie : ceux qui marchent et sont d’un usage général

Catégorie : ceux qui marchent et sont spécialisés


Petit panorama d’outils sur les ontologies : l’alignement

Malgré leur utilité manifeste, ces outils sont encore bien rares. Voici une bien maigre moisson. Merci de me laisser un commentaire pour m’en signaler d’autres, que je mette à jour cette page.

Catégorie : ceux qui marchent

Des informations utiles sont disponibles sur http://ontologymatching.org/ : références aux outils existants et liste des publications scientifiques.


  • Catégories

  • Calendrier

    février 2017
    L M M J V S D
    « Juil    
     12345
    6789101112
    13141516171819
    20212223242526
    2728  
  • Archives

  • Copyright © 1996-2010 Blogabriel. All rights reserved.
    iDream theme by Templates Next | Powered by WordPress