database rdf privacy reification

database - Tienda RDF con versiones



privacy reification (6)

Eche un vistazo para ver si el soporte RDF de Virtuoso satisface sus necesidades, parece que podría llegar a ser bastante, y también funciona bien con XML y servicios web. Hay una versión comercial y una GPL.

Déjame intentar reformular esto:

Estoy buscando una tienda robusta de RDF o una biblioteca con las siguientes características:

  • Gráficos con nombre , o alguna otra forma de reificación.
  • Seguimiento de versiones (probablemente en el nivel del gráfico nombrado).
  • Privacidad entre grupos de usuarios, ya sea en el gráfico nombrado o en el nivel triple.
  • Entrada y salida de datos legibles por humanos , por ejemplo, analizador TriG y serializador.

He jugado con Jena , Sesame , Boca , RDFLib , Redland y uno o dos más hace un tiempo, pero cada uno tenía sus problemas. ¿Ha mejorado alguna vez en las áreas mencionadas recientemente? ¿Puede hacer algo más lo que yo quiero, o RDF aún no está listo para el horario de máxima audiencia?

Leyendo un poco más sobre el tema, descubrí que:

  • Jena , nada más
  • Sésamo , nada más
  • Parece que Boca ya no se mantiene y parece que realmente solo está diseñado para DB2. OpenAnzo , un tenedor de fuente abierta, parece más prometedor.
  • RDFLib , nada más
  • Redland , nada más
  • Talis Platform parece ser compatible con los conjuntos de cambios ( página wiki y referencia en Kniblet Tutorial Parte 5 ), pero es un servicio solo de hospedaje. Sin embargo, aún puede analizarlo.
  • SemVersion sonaba prometedor, pero parece ser obsoleto.

Talis es la elección obvia, pero la privacidad puede ser un problema, o un problema percibido de todos modos, ya que es una oferta de SaaS. Digo obvio porque las tres características envasadas en su lista son características principales de su plataforma IIRC.

No tienen una lista de características como tal, lo que dificulta realizar una copia de seguridad de esta respuesta, pero sí dicen que las reservas de datos se pueden proteger individualmente. Supongo que podrías, en un abrir y cerrar de ojos, registrarte en una tienda separada en nombre de cada uno de tus propios usuarios.

La información legible para los humanos a menudo se respalda mejor mediante la creación de interfaces personalizadas para cada tarea del usuario, por lo que debe estar preparado para hacerlo cuando las necesidades lo requieran.

Con respecto a la preparación para el horario de máxima audiencia. Yo diría que sí para algunas aplicaciones, pero de lo contrario "no del todo". En su mayoría, la comunidad necesita integrarse con los conjuntos de herramientas de desarrollo existentes y escribir buena documentación dirigida a desarrolladores "comunes" -probablemente desarrolladores de OO que usan Java, .NET y Ruby / Groovy- y luego predigo que aumentará.

Véase también Alcance temporal para RDF triplica


Mulgara / Fedora-Commons podría encajar en la cuenta. Creo que la privacidad es actualmente un proyecto importante, y entiendo que es compatible con el control de versiones, pero podría ser demasiado si se trata de una tienda de objetos también.


De: http://www.semanticoverflow.com/questions/453/how-to-implement-semantic-data-versioning/748#748

Personalmente me gusta bastante el enfoque pragmático que Freebase ha adoptado.

Navega y edita vistas para humanos:

  • http: //www.freebase.com/view/guid/9202a8c04000641f80000000041ecebd
  • http: //www.freebase.com/edit/topic/guid/9202a8c04000641f80000000041ecebd

El modelo de datos expuesto aquí:

  • http: //www.freebase.com/tools/explore/guid/9202a8c04000641f80000000041ecebd

En pocas palabras, no es RDF (es probable que sea un superconjunto), pero parte de ella se puede exponer como RDF:

  • http: //rdf.freebase.com/rdf/guid.9202a8c04000641f80000000041ecebd

Debido a que es un sitio web impulsado por la comunidad, no solo necesitan rastrear quién dijo qué, cuándo ... sino que probablemente también mantienen la historia (nunca elimine nada):

  • http: //www.freebase.com/history/view/guid/9202a8c04000641f80000000041ecebd

Para concluir, la forma en que abordaría su problema es muy similar y pragmática. AFAIK, no encontrará una solución que funcione de inmediato. Pero puede usar una tienda "tupla" (3 o 4 no son suficientes para mantener la historia en la granularidad más fina (es decir, triples | quads)).

Usaría el código TDB como biblioteca (dado que te da B + Trees y muchas cosas útiles que necesitas) y usaría un modelo de datos que me permite: contar cuádruples, asignar una propiedad a un quad, una marca de tiempo y quad (s) anterior / siguiente si está disponible:

[ id | g | s | p | o | user | timestamp | prev | next ]

Dónde:

id - long (unique identifier, same (g,s,p,o) will have different id... a lot of space, but you can count quads... and when you have a community driven website (like this one) counting things it''s important. g - URI (or blank node?|absent (i.e. default graph)) s - URI|blank node p - URI o - URI|blank node|literal user - URI

timestamp - cuando el quad se creó prev - id del quad anterior (si está presente) next - id del próximo quad (si está presente)

Luego, debe pensar qué índices necesita y esto dependerá de la forma en que quiera exponer y acceder a sus datos.

No necesita exponer todas sus estructuras / índices internos a usuarios / personas / aplicaciones externas. Y, cuando (y si), aparecerán vocabularios RDF u ontologías para representar el control de versiones, etc., usted podrá exponer rápidamente sus datos usándolos (si lo desea).

Tenga en cuenta que esta no es una práctica común y que la mire con sus "gafas web semánticas", probablemente sea incorrecta, mala, etc. Pero, estoy compartiendo la idea, ya que creo que no es dañina, permite brindar una solución a su pregunta (será más lento y usará más espacio que una tienda cuádruple), parte de ella puede exponerse a la web semántica como RDF / LinkedData.

Mis 2 (herejes) centavos.


LMF incluye un módulo de control de versiones: http://code.google.com/p/lmf/wiki/ModuleVersioning

El Linked Media Framework es una aplicación de servidor fácil de configurar desarrollada en JavaEE que agrupa las tecnologías centrales de la Web Semántica para ofrecer muchos servicios avanzados.