2. Problémová oblasť
Anotácie (metadáta) na Webe
Web – veľký => Veľa metadát
Distribuované úložisko
Distribuované spracovanie dát
„Voľná“ štruktúra dát
Nevhodná relačná algebra
„Štandard“:
Model Open Annotation
(openannotation.org)
RDF
Dopytovanie prostredníctvom SPARQL
3. Očakávané štandardné použitie
Uloženie anotácie
Aktualizácia anotácie
Získanie konkrétnej anotácie
Získanie histórie anotácie (historickej verzie)
Získanie anotácií z dokumentu
Dopytovanie nad anotáciami prostredníctvom
SPARQL – kompatibilita s Open Annotation
5. Realizácia
Kolekcia: Annotations
Objekty anotácií - ľubovoľná štruktúra dát s URI
identifikátorom, spĺňajúca náležitosti modelu OA
Rýchly prístup ku konktrérnej anotácií
Pomalé získanie zoznamu anotácií dokumentu
Kolekcia: Dokumenty
Objekty s fixnou štruktúrou – (ID, URI dokumentu –
indexované, URI anotácie, platnosť anotácie)
Rýchle získanie zoznamu anotácií
SPARQL – MapReduce s Finalize
8. C#
using MongoDB.Bson; class Annotation
using MongoDB.Driver; {
using MongoDB.Bson.Serialization; [BsonId]
using MongoDB.Driver.Builders; public string Uri
{ get; set; }
MongoServer server =
MongoServer.Create(connectionString); public DateTime Created
MongoDatabase database = { get; set; }
server.GetDatabase(databaseName);
var annotations = public bool IsDeleted
database.GetCollection<Annotation> { get; set; }
(collectionName);
Annotation annotation = public ITarget[] HasTarget
new Annotation() {…}; { get; set; }
annotations.Insert(annotation); ...
annotation = }
annotations.FindOneById(uri);