Регистрация пространства имен в AllegroGraph (зарегистрированные именные пространства отсутствуют.) - PullRequest
0 голосов
/ 03 февраля 2010

У меня проблема с регистрацией пространства имен в AllegroGraph.

Мой код Java (программа 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());

Выполнить, и результат (программа 1):

AG Пространства имен (изначально):
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: сова
5: http://www.w3.org/2002/07/owl#

Пространства имен AG (зарегистрированные):

  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#

Затем мой код Java (программа 2):

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

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

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

Выполнить и результат (программа)2):

Пространства имен AG (зарегистрировано):

 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#

В программе 1 я создаю AllegroGraph с именем «test» и зарегистрировал остальные 5 пространств имен (foaf, dc, dct, exif, prf);в программе 2 я открываю созданный AllegroGraph, но в его пространстве имен только 3: rdf, rdfs, owl, остальные 5 пространств имен, зарегистрированных в программе 1., отсутствуют.

Мой вопрос:

  1. Почему пропустили остальные 5 пространств имен?
  2. Как сохранить 5 зарегистрированных пространств имен в созданных AllegroGraph?(Когда я открываю созданный AllegroGraph, мне не нужно снова регистрировать пространства имен.)

И в моей программе, после регистрации всего пространства имен, я добавил следующий код:

ag.closeTripleStore();

и это бесполезно: (

1 Ответ

1 голос
/ 13 сентября 2010

Короче говоря, AllegroGraph не сохраняет регистрацию пространства имен в тройном магазине. Пространства имен являются синтаксическим сахаром, который существует для облегчения чтения и записи длинных URI. Несмотря на то, что существует много часто используемых сокращений (rdf, owl, foaf, dc, ...), каждый человек может составлять свои собственные и использовать их по своему усмотрению. Если AllegroGraph сохранит аббревиатуры пространства имен, то магазин будет нести чьи-то личные сокращения, что может привести к путанице, если кто-то еще откроет магазин.

Короче говоря, если вы хотите использовать пространства имен, вы должны настроить свой код, чтобы перерегистрировать их при запуске. Также обратите внимание, что сокращения пространства имен являются глобальными для запущенного экземпляра, а не для конкретного тройного хранилища.

НТН

...