2010-02-03 2 views
0

J'ai un problème d'enregistrement d'espace de noms dans AllegroGraph.Enregistrement d'un espace de noms dans AllegroGraph (Les noms de lieux enregistrés sont manquants.)

code Java Mon (programme 1):

AllegroGraphConnection agc = new AllegroGraphConnection(); 
agc.enable(); 

AllegroGraph ag = agc.create("test", AGPaths.TRIPLE_STORES); 

AGUtils.printStringArray("AG Namespaces (initially):", ag.getNamespaces()); 

ag.registerNamespace("foaf","http://xmlns.com/foaf/0.1/"); 
ag.registerNamespace("dc", "http://purl.org/dc/elements/1.1/"); 
ag.registerNamespace("dct", "http://purl.org/dc/terms/"); 
ag.registerNamespace("exif","http://www.w3.org/2003/12/exif/ns#"); 
ag.registerNamespace("prf", "http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-2007511#"); 

AGUtils.printStringArray("AG Namespaces (registed):", ag.getNamespaces()); 

Run, et le résultat (programme 1):

AG Namespaces (initialement):
0: rdf
1: http://www.w3.org/1999/02/22-rdf-syntax-ns#
2: rdfs
3: http://www.w3.org/2000/01/rdf-schema#
4: hibou
5: http://www.w3.org/2002/07/owl#

AG Namespaces (enregistré):

0: rdf 
    1: http://www.w3.org/1999/02/22-rdf-syntax-ns# 
    2: rdfs 
    3: http://www.w3.org/2000/01/rdf-schema# 
    4: owl 
    5: http://www.w3.org/2002/07/owl# 
    6: foaf 
    7: http://xmlns.com/foaf/0.1/ 
    8: dc 
    9: http://purl.org/dc/elements/1.1/ 
    10: dct 
    11: http://purl.org/dc/terms/ 
    12: exif 
    13: http://www.w3.org/2003/12/exif/ns# 
    14: prf 
    15: http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-2007511# 

Ensuite, mon code Java (programme 2):

AllegroGraphConnection agc = new AllegroGraphConnection(); 
agc.enable(); 

AllegroGraph ag = agc.open("test", AGPaths.TRIPLE_STORES); 

AGUtils.printStringArray("AG Namespaces (registed):", ag.getNamespaces()); 

Run, et le résultat (programme 2):

AG Espaces de noms (enregistrés):

0: rdf 
    1: http://www.w3.org/1999/02/22-rdf-syntax-ns# 
    2: rdfs 
    3: http://www.w3.org/2000/01/rdf-schema# 
    4: owl 
    5: http://www.w3.org/2002/07/owl# 

Dans le programme 1, je crée un AllegroGraph dont le nom est "test", et j'ai enregistré les 5 autres espaces de noms (foaf, dc, dct, exif, prf); dans le programme 2, j'ouvre le AllegroGraph créé, mais son espace de noms a seulement 3: rdf, rdfs, owl, les 5 autres espaces de noms qui est enregistré dans le programme 1 est manquant.

Ma question est:

  1. Pourquoi les 5 autres namespaces manqués? Comment puis-je conserver les 5 espaces de noms enregistrés dans AllegroGraph créé? (Quand j'ouvre le créé AllegroGraph, je dois ne pas enregistrer namespaces à nouveau.)

Et dans mon programme, après enregistré tous les nameSpace, j'ai ajouté le code suivant:

ag.closeTripleStore(); 

et il est inutile :(

Répondre

1

En bref, AllegroGraph ne persiste pas l'enregistrement de l'espace de noms dans le magasin triple.Les espaces de noms sont des sucres syntaxiques qui existent pour faciliter la lecture et l'écriture long U RIs. Même s'il existe de nombreuses abréviations couramment utilisées (rdf, hibou, foaf, dc, ...), chaque personne peut créer ses propres abréviations et les utiliser comme bon lui semble. Si AllegroGraph persistait dans les abréviations d'espace de noms, le magasin porterait les abréviations personnelles de quelqu'un avec lui, ce qui pourrait causer de la confusion si quelqu'un d'autre ouvrait le magasin.

En résumé, si vous souhaitez utiliser des espaces de noms, vous devez configurer votre code pour les réenregistrer au démarrage. Notez également que les abréviations d'espace de noms sont globales pour l'instance en cours d'exécution, pas pour un magasin triple particulier.

HTH