summaryrefslogtreecommitdiff
path: root/src/ontologies
Commit message (Collapse)AuthorAgeFilesLines
* core: Fix possible FTS integrity corruptionCarlos Garnacho2023-01-231-4/+2
| | | | | | | | | | | | | | | | | | | | | | From experimenting with FTS5, our usage patterns, and the 'integrity-check' FTS command, it turns out the 'delete' command does not entirely like doing partial updates on a row, it instead expects the command to be issued for all table columns. The only way to keep the FTS index happy is that we issue FTS deletes/inserts for all columns in the FTS table whenever we update a rowid, and that the select query on the external table "fts_view" is as-is for the given rowid. For that we must move the COALESCE() that filters out rows with all-empty text columns from the FTS updating queries to the fts_view view itself. In order to automatically fix possible corruptions in existing databases, and update to the fts_view change, we must trigger all our sorts of FTS updates: A pointless FTS field (nco:phoneNumber) was removed to trigger an update on the fts view+table, and the parser version was bumped to ensure the FTS index is rebuilt. These modifications will update existing databases to fix any existing corruption. Closes: https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/253
* ontologies: Move fts: prefix definition to base ontologyCarlos Garnacho2022-09-272-6/+6
| | | | | | | | | | | | | | This prefix is used in some of our base SPARQL API (e.g. fts:match and the misc functions to deal with results), but the prefix is currently defined in the Nepomuk ontology side. This makes applications that want to use FTS with custom ontologies either need to declare the prefix themselves, or help queries with `PREFIX` syntax to add the missing stock prefix. Move this prefix definition to the base ontology, so all databases inherit the builtin fts: prefix and it can be used right away in FTS queries.
* ontologies: Add separate documentation file for RDFSCarlos Garnacho2021-08-262-0/+13
| | | | | A little help for the new documentation tool, so this ontology is picked up.
* ontologies: Specify a unit for nfo:durationSam Thursfield2020-12-131-1/+1
| | | | | | Upstream Nepomuk doesn't specify a unit, but it's a useless value without one. GStreamer extractor treats duration as seconds so lets declare that as the standard.
* ontologies: Add class for gamesCarlos Garnacho2020-06-191-0/+6
| | | | | We should have a representation for Games (even if minimal) to be useful to GNOME Games.
* Merge branch 'wip/carlosg/last-api-changes' into 'master'Sam Thursfield2020-06-1913-368/+336
|\ | | | | | | | | | | | | Last API changes (?) Closes #218 and #226 See merge request GNOME/tracker!274
| * ontologies: Move tracker: ontology in 11-rdf.ontology to NRLCarlos Garnacho2020-06-1913-368/+336
| | | | | | | | | | | | | | | | | | | | | | | | NRL is about defining the data structure, all our additional properties somehow belong in that same domain. This also moves all tracker:* properties and classes out of the base ontology (except for the tracker namespace itself, sadly, as it's needed for functions). All users have been updated to the new namespace for these properties and classes. Fixes: https://gitlab.gnome.org/GNOME/tracker/-/issues/226
* | ontologies: Add tracker:extractorHash propertyCarlos Garnacho2020-06-181-0/+7
|/ | | | | | This is a string property that can be set on nfo:FileDataObject, it will be used to uniquely identify the extractor that extracted its metadata.
* Merge branch 'sam/ontology-shrink' into 'master'Sam Thursfield2020-06-175-82/+9
|\ | | | | | | | | | | | | Shrink ontology a little Closes #212 See merge request GNOME/tracker!249
| * ontology: Add some maxCardinality contraintsSam Thursfield2020-05-205-2/+9
| | | | | | | | | | These changes reduce the number of tables in the database, saving a little disk space. Total saving is 44KiB in an empty database.
| * ontology: Remove predefined locations from slo ontologySam Thursfield2020-05-201-80/+0
| | | | | | | | | | This is a random set of data which nobody is using. Removing it reduces size of an empty database by 16KiB.
* | Merge branch 'wip/jfelder/track-artist-ontology' into 'master'Sam Thursfield2020-06-131-2/+8
|\ \ | | | | | | | | | | | | ontologies: Add a nmm:artist property for nmm:MusicPiece See merge request GNOME/tracker!261
| * | ontologies: Change nmm:performer to a multivalued propertyJean Felder2020-05-311-2/+0
| | | | | | | | | | | | | | | A nmm:MusicPiece can have multiple peformers. This matches the behavior of the original nepomuk ontology.
| * | ontologies: Add nmm:artist property for nmm:MusicPieceJean Felder2020-05-311-0/+8
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new property allows to distinguish the track artist (nmm:artist) from the performer (nmm:peformer). It is intended to match the description from the vorbis specifications: * the artist is "The artist generally considered responsible for the work. In popular music this is usually the performing band or singer. For classical music it would be the composer." * the performer is "The artist(s) who performed the work. In classical music this would be the conductor, orchestra, soloists. In popular music this is typically the same as the artist and is omitted."
* | nepomuk: Replace tracker:Volume with tracker:IndexedFolderCarlos Garnacho2020-06-061-18/+9
|/ | | | | | | | | | This class will represent all indexed folders, mount points or not. The tracker:available and tracker:isMounted properties are now a single tracker:available property set on the nie:DataSource (like tracker:unmounted previously). Files won't be "available" themselves, users should update to poking the availability of the nie:dataSource.
* ontology: Enable notifications for nfo:FileDataObjectSam Thursfield2020-05-021-1/+2
| | | | | This is needed so we continue to get notifications for data created by the miner-fs.
* ontologies: Fix gitlog property to point to GitlabSam Thursfield2020-05-019-9/+9
|
* Remove unused ontologiesSam Thursfield2020-05-0118-2882/+6
| | | | | | | | | | | | | | All of these are unused within tracker-miners, and as far as we know they are also unused in GNOME. Each ontology has a cost on database size and on time to create a new database, so it's good to limit these as much as we can. Alternatives: - nid3: use nmm ontology - ncal, scal: use evolution-data-server as GNOME Calendar does - mlo: use slo ontology
* Update ontology URLs for 3.0Sam Thursfield2020-04-2240-126/+126
| | | | | | | | | | | | | | | Our ontology URLs now use a namespace that we manage, at http://tracker.api.gnome.org/. This domain won't expire and can redirect anywhere we want, so that it can always link to the correct documentation for the ontologies. We are going to continue using the Nepomuk name in the ontologies that were developed by the Nepomuk project, despite changing the URL. This way we acknowledge that we have downstream changes to the Nepomuk ontologies but still provide a link to the original shared vocabularies. Fixes https://gitlab.gnome.org/GNOME/tracker/-/issues/162 and https://gitlab.gnome.org/GNOME/tracker/-/issues/104
* Rework the Ontology documentationSam Thursfield2020-04-182-20/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change was motivated by https://gitlab.gnome.org/GNOME/tracker/issues/104. We want to move to using URLs that we control for the ontologies, like this: http://api.gnome.org/ontologies/nfo/3.0/#Document http://api.gnome.org/ontologies/nfo/3.0/#url For this scheme to work, each ontology needs to document all classes and properties on a single page. It's an opportunity to reorganize the documentation too and try to prioritize the most important info. Here's a partial list of changes in this commit: * One page per ontology, listing all classes and properties defined in that ontology. * URL fragments matching class and property names, so for example /nmm.html#artistName links to the nmm:artistName property. * Cross references now work between libtracker-sparql3 and tracker3-nepomuk ontology docs * Properties are shown as a concise table. * Classes and properties are listed in alphabetical order. * New 'tracker:classSpecification' and 'tracker:propertySpecification' properties which allow us to link to upstream documentation. * New 'synopsis' section for each ontology showing appropriate Turtle @prefix statement Also, the `docs/tools/ttl2xml` program now returns failed status when it encounters parse errors in an ontology.
* ontologies: Add docs for fundemental type classes from XMLSchemaSam Thursfield2020-04-181-6/+12
|
* ontologies: Drop nmm:videoAlbumCarlos Garnacho2020-04-151-9/+0
| | | | | | It's an extension to nepomuk, unused, documented as "not making sense", and the problem highlighted is indeed accurate. Since it's got no use, just remove it.
* ontologies: Add nmm ontology bits for TV shows/seasons/episodesCarlos Garnacho2020-04-151-16/+72
| | | | | | This was defined in upstream nepomuk but not by ourselves. Seems a nicety to have, also drop some minimal support that was added for this as non-upstreamed nepomuk extensions.
* ontologies: Drop nmm:albumTitleCarlos Garnacho2020-04-151-12/+0
| | | | It's been deprecated and unused for a long time.
* ontologies: Drop poi (?) namespaceCarlos Garnacho2020-04-151-9/+0
| | | | | This seems an incipient ontology for points of interests that never flew. Drop this.
* ontologies: Drop tracker:damagedCarlos Garnacho2020-04-151-6/+0
| | | | This is unused.
* ontologies: Drop tracker:fulltextNoLimitCarlos Garnacho2020-04-151-6/+0
| | | | This is unused.
* ontologies: Make nie:isStoredAs/isInterpretedAs multivaluedCarlos Garnacho2020-04-151-5/+4
| | | | | | | | | | This is necessary for a full decoupling of InformationElement and DataSource (i.e. allowing 1:N, M:1, or M:N relationships). In order to compensate for these properties being multivalued, add indexes for both, these are pretty central properties. Also, undeprecate nie:isStoredAs, I don't know why was this added, but it's delusional it ever was.
* ontologies: Add some missing docsCarlos Garnacho2020-04-157-18/+126
| | | | Lift those from nepomuk, for the most part.
* ontologies: Drop some unneeded tracker:weightCarlos Garnacho2020-04-151-10/+5
| | | | Those are not even string properties.
* ontologies: Add tracker:deprecated to replace core uses of nao:deprecatedCarlos Garnacho2020-04-104-55/+59
| | | | | This is used to hint ontology bits as deprecated, and used in our doc tool, make it sure we don't rely on ontology bits that might even not be there.
* ontology: Move nao ontology together with the rest of nepomukCarlos Garnacho2020-04-104-3/+2
| | | | | | This ontology offers oddly high-level concepts like nao:Tag, which don't make much sense to define in the core. Now that we no longer rely on this ontology for defining other ontologies, we can just move it.
* ontology: Move away from nao:lastModified to express ontology changesCarlos Garnacho2020-04-1020-40/+28
| | | | | Add a tracker:lastModified property that only applies to tracker:Ontology, instead of using this such high-level property.
* Remove tracker:defaultValue featureSam Thursfield2020-03-061-5/+0
| | | | | This was a non-standard SPARQL feature which was untested and unused apart from by a property in the obsolete Maemo ontology.
* Remove Maemo ontologySam Thursfield2020-03-063-130/+0
| | | | It's very obsolete.
* docs: Fix generation of Tracker ontology docsSam Thursfield2020-02-251-0/+1
| | | | | The class links were being generated incorrectly because the tracker: ontology didn't specify a prefix.
* libtracker-data: Handle rdf:langString typeCarlos Garnacho2019-09-101-0/+10
| | | | | This is generally stored as a BLOB type, with the "$string\0$locale" format. Conversions between string and langString types are allowed.
* ontologies: Add ontology for rdf:ListCarlos Garnacho2019-09-101-1/+22
| | | | | This is a base feature of RDF used in Sparql collections. Add ontology support for it.
* libtracker-data: Remove support for tracker:transientCarlos Garnacho2019-09-101-5/+0
| | | | It was unused, plus we could better harness temporary tables for this.
* libtracker-data: Drop journalCarlos Garnacho2019-09-102-7/+1
|
* ontologies: tracker:ExternalReference can have only one nie:identifierJean Felder2019-09-021-1/+0
|
* Merge branch 'wip/jfelder/revert-musicbrainz-ontology' into 'master'Sam Thursfield2019-08-061-36/+1
|\ | | | | | | | | Revert MusicBrainz ontology See merge request GNOME/tracker!111
| * Revert "38-nmm.ontology: Store Musicbrainz IDs for music resources"Jean Felder2019-08-061-36/+1
| | | | | | | | | | | | This reverts commit d8aa7c57d309c02ceb01e64f57dc6a6124e47859. MusicBrainz tags will be defined with ExternalReference instead.
* | 90-tracker.ontology: Add support for ExternalReferenceCarlos Garnacho2019-08-061-2/+29
|/ | | | | | | | tracker#ExternalReference allows to introduce references to identifiers provided by an online service. For example, one can map a nmm#MusicAlbum with its Release Group Id provided by MusicBrainz (https://musicbrainz.org/doc/Release_Group).
* 38-nmm.ontology: Store Musicbrainz IDs for music resourcesSumaid Syed2019-05-291-1/+36
| | | | | | | | Musicbrainz is a community-developed database of music metadata, which can provide cover art too. Musicbrainz has its own identifier namespace which is widely used. Musicbrainz IDs are stored for music resources in the nmm (multimedia) ontology. Closes: https://gitlab.gnome.org/GNOME/tracker/issues/13
* build: Use build_by_default to generate ontology docsCarlos Garnacho2018-10-131-4/+4
| | | | The build_always option is deprecated since meson 0.38.0
* nepomuk: Drop unused ontology fileCarlos Garnacho2018-10-022-30/+3
| | | | | | | | | | | | | | | These NAO ontology extensions were split from the main ontology prior to 2.0 because they are both non-official and unnecessary for core ontology concepts. However, it was apparently never added to build, so this piece of ontology did effectively disappear. Internally it was just used by the evolution plugin (which disappeared in 2.0 as well), and since there has been no outcry it seems mostly unused on the outside. It just doesn't make sense to mourn for this overly generic ontology. So drop this file, and just rescue nao:predefined-tag-favorite as this is still used by apps (it just doesn't happen to be a nao:Tag).
* build: Drop autotoolswip/carlosg/drop-autotoolsCarlos Garnacho2018-09-091-41/+0
|
* build: Do not install builtin ontologyCarlos Garnacho2018-09-051-3/+0
| | | | It is compiled as a GResource
* ontologies: Drop cardinality from legalese propertieswip/carlosg/legalese-cardinalityCarlos Garnacho2018-08-282-6/+2
| | | | | | | | | | nie:copyright and nie:license were single valued and subproperties of the common single valued properties nie:legal and dc:rights. Drop cardinality restrictions on all of those, so we can have multiple values for each. This happens to be in line with the last ever version of NIE ontology. Closes: https://gitlab.gnome.org/GNOME/tracker/issues/33