[tracker] Retain resource annotations on file modification
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] Retain resource annotations on file modification
- Date: Tue, 13 Oct 2009 12:51:02 +0000 (UTC)
commit 8b5aa243feee4edd1312dade44e4116b9ff60224
Author: Jürg Billeter <j bitron ch>
Date: Tue Oct 13 14:45:50 2009 +0200
Retain resource annotations on file modification
Add tracker:isAnnotation property and mark nie:usageCounter and
nao:hasTag as annotations.
Fixes NB#137046.
data/ontologies/11-rdf.ontology | 5 +++++
data/ontologies/30-nie.ontology | 4 +++-
data/ontologies/31-nao.ontology | 3 ++-
src/libtracker-data/tracker-data-manager.c | 28 ++++++++++++++++++++++++++--
4 files changed, 36 insertions(+), 4 deletions(-)
---
diff --git a/data/ontologies/11-rdf.ontology b/data/ontologies/11-rdf.ontology
index f61e351..172876e 100644
--- a/data/ontologies/11-rdf.ontology
+++ b/data/ontologies/11-rdf.ontology
@@ -85,6 +85,11 @@ tracker:transient a rdf:Property ;
rdfs:domain rdf:Property ;
rdfs:range xsd:boolean .
+tracker:isAnnotation a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdf:Property ;
+ rdfs:range xsd:boolean .
+
tracker:added a rdf:Property ;
nrl:maxCardinality 1 ;
rdfs:domain rdfs:Resource ;
diff --git a/data/ontologies/30-nie.ontology b/data/ontologies/30-nie.ontology
index 9179691..66e8495 100644
--- a/data/ontologies/30-nie.ontology
+++ b/data/ontologies/30-nie.ontology
@@ -235,4 +235,6 @@ nie:rootElementOf a rdf:Property ;
nie:usageCounter a rdf:Property ;
nrl:maxCardinality 1 ;
rdfs:domain nie:InformationElement ;
- rdfs:range xsd:integer.
+ rdfs:range xsd:integer ;
+ tracker:isAnnotation true .
+
diff --git a/data/ontologies/31-nao.ontology b/data/ontologies/31-nao.ontology
index db83c57..da40255 100644
--- a/data/ontologies/31-nao.ontology
+++ b/data/ontologies/31-nao.ontology
@@ -20,7 +20,8 @@ nao:prefLabel a rdf:Property ;
nao:hasTag a rdf:Property ;
rdfs:domain rdfs:Resource ;
rdfs:range rdfs:Resource ;
- tracker:indexed true .
+ tracker:indexed true ;
+ tracker:isAnnotation true .
nao:identifier a rdf:Property ;
nrl:maxCardinality 1 ;
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 5c3ba1a..e534081 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -223,6 +223,18 @@ load_ontology_file_from_path (const gchar *ontology_file)
if (g_strcmp0 (object, "true") == 0) {
tracker_property_set_transient (property, TRUE);
}
+ } else if (g_strcmp0 (predicate, TRACKER_PREFIX "isAnnotation") == 0) {
+ TrackerProperty *property;
+
+ property = tracker_ontology_get_property_by_uri (subject);
+ if (property == NULL) {
+ g_critical ("%s: Unknown property %s", ontology_file, subject);
+ continue;
+ }
+
+ if (g_strcmp0 (object, "true") == 0) {
+ tracker_property_set_embedded (property, FALSE);
+ }
} else if (g_strcmp0 (predicate, TRACKER_PREFIX "fulltextIndexed") == 0) {
TrackerProperty *property;
@@ -417,7 +429,8 @@ db_get_static_data (TrackerDBInterface *iface)
"\"nrl:maxCardinality\", "
"\"tracker:indexed\", "
"\"tracker:fulltextIndexed\", "
- "\"tracker:transient\" "
+ "\"tracker:transient\", "
+ "\"tracker:isAnnotation\" "
"FROM \"rdf:Property\" ORDER BY ID");
cursor = tracker_db_statement_start_cursor (stmt, NULL);
g_object_unref (stmt);
@@ -429,7 +442,7 @@ db_get_static_data (TrackerDBInterface *iface)
TrackerProperty *property;
const gchar *uri, *domain_uri, *range_uri;
gboolean multi_valued, indexed, fulltext_indexed;
- gboolean transient = FALSE;
+ gboolean transient, annotation;
property = tracker_property_new ();
@@ -478,6 +491,16 @@ db_get_static_data (TrackerDBInterface *iface)
transient = FALSE;
}
+ tracker_db_cursor_get_value (cursor, 7, &value);
+
+ if (G_VALUE_TYPE (&value) != 0) {
+ annotation = (g_value_get_int (&value) == 1);
+ g_value_unset (&value);
+ } else {
+ /* NULL */
+ annotation = FALSE;
+ }
+
tracker_property_set_transient (property, transient);
tracker_property_set_uri (property, uri);
tracker_property_set_domain (property, tracker_ontology_get_class_by_uri (domain_uri));
@@ -485,6 +508,7 @@ db_get_static_data (TrackerDBInterface *iface)
tracker_property_set_multiple_values (property, multi_valued);
tracker_property_set_indexed (property, indexed);
tracker_property_set_fulltext_indexed (property, fulltext_indexed);
+ tracker_property_set_embedded (property, !annotation);
property_add_super_properties_from_db (iface, property);
tracker_ontology_add_property (property);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]