Projects/Nepomuk
Projects/Nepomuk
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
About Nepomuk
This page is dedicated to Nepomuk development ideas, progress, experiments, and is a general starting point for new developers.
For general information about the Nepomuk project see the dedicated Nepomuk homepage.
Contact
IRC: #nepomuk-kde on Freenode
Mailing List: [email protected]
Maintainer: Sebastian Trueg
Developers: Vishesh Handa
Documentation
The Nepomuk page on UserBase has information and troubleshooting for users.
The following links provide good reads for getting used to the Nepomuk system and its APIs.
- Development Tutorials
- Nepomuk Tips and Tricks
- Nepomuk API Documentation
- Soprano (RDF storage) API
- Using the Nepomuk Resource Code generator and the Soprano Ontology class generator in cmake
As Nepomuk is highly dependent on its data in the RDF store and the used ontologies, one might consider to read up on RDF and the Nepomuk ontogies:
Events
June 19-21, 2009 - Coding Sprint 2009 Freiburg, Germany
Open Social Semantic Desktop Workshop 2009 Freiburg, Germany
ToDo
Nepomuk is a rather young project with a notorious shortage in developers. There are many tasks and subprojects to get ones hands dirty on. Unlike other projects like Plasma, however, developing for Nepomuk is not easy. One has to read up on a lot of things and fight some day-to-day annoyances. But: helping with the development will improve the situation in any case.
If you are interested in working on a task in this list, please contact Sebastian Trueg.
Junior Jobs
If you want to get into Nepomuk development quickly by taking over a small task have a look at our Junior Job page.
Low level Nepomuk Development Tasks
The low-level development tasks are those that are not directly reflected in the GUI or even in the API used by most developers. However, they are important in terms of performance, scalability, and compatibility.
Add Inference Configuration to the Virtuoso Soprano Backend
Virtuoso 5 provides inference on rdfs:subClassOf and rdfs:subPropertyOf. These are the most important ones and for now all we need in Nepomuk.
The current implementation of the Virtuoso Soprano backend does not enable inference. We need a configuration option to do exactly that. It could happen along the lines of the existing config options or with the introduction of dedicated inference configuration options on the Soprano::Backend level.
Soprano Transaction Support
Soprano is the RDF database framework used in Nepomuk. Currently Soprano does not support transactions, i.e. sets of commands that can be rolled back. An experimental development branch exists which already contains new API for transaction support (while keeping BC).
It still misses an implementation of the transaction support in Soprano backends (Sesame2 and Virtuoso) and in the client/server architecture.
Another idea is to create a new API based on the design that Sesame2 follows: Repository and RepositoryConnection classes. The former creates instances of the latter which then has all the actual data handling methods and acts as one transaction object.
General Nepomuk
Nepomuk Backup Service
Implementation details are discussed in Projects/Nepomuk/MetadataSharing
We need a backup solution. The idea is the typical one: have a Nepomuk service that allows to specify update intervals and manual updates.
The service should ignore all data extracted by Strigi, i.e. data that can be recreated deterministically. This can easy be determined by checking the context/named graph the data statements are stored in. Strigi stores all extracted data in one context which is marked as the http://www.strigi.org/fields#indexGraphFor for the file in question. Thus, a query along the lines of the following would work:
select ?s ?p ?o ?g where { graph ?g { ?s ?p ?o . } . OPTIONAL { ?g strigi:indexGraphFor ?x . } . FILTER(!BOUND(?x)) . }
Other features could include replacement of the home directory like it is done in KConfig. This way the data could be re-imported in another user account.
Nepomuk Toolbox
Provide a GUI that allows to call methods such as optimize and rebuildIndex on the storage service. The latter method is not commited yet due to the KDE 4.3 feature freeze but will be afterwards.
It would also be useful to have Nepomuk register such operations (including the data conversion when changing backends) via the notification system.
Development status
See Projects/Nepomuk/DevelopmentStatus.
http://techbase.kde.org/Projects/Nepomuk/Ideas
Subpages of Projects/Nepomuk
- Projects/Nepomuk/BulkChanges
- Projects/Nepomuk/BulkChanges/en
- Projects/Nepomuk/ComponentOverview
- Projects/Nepomuk/ComponentOverview/en
- Projects/Nepomuk/DataFeeders
- Projects/Nepomuk/DataFeeders/en
- Projects/Nepomuk/GraphConcepts
- Projects/Nepomuk/GraphConcepts/en
- Projects/Nepomuk/Ideas
- Projects/Nepomuk/IndexingPlugin
- Projects/Nepomuk/IndexingPlugin/en
- Projects/Nepomuk/ManagingNepomukProcesses
- Projects/Nepomuk/ManagingNepomukProcesses/en
- Projects/Nepomuk/Nepomuk2Port
- Projects/Nepomuk/Nepomuk2Port/en
- Projects/Nepomuk/NepomukShow
- Projects/Nepomuk/NepomukShow/en
- Projects/Nepomuk/OntologyBasics
- Projects/Nepomuk/OntologyBasics/en
- Projects/Nepomuk/Qualified Relations Idea
- Projects/Nepomuk/QueryLibrary
- Projects/Nepomuk/QueryLibrary/en
- Projects/Nepomuk/QueryingMethods
- Projects/Nepomuk/QueryingMethods/en
- Projects/Nepomuk/QuickStart
- Projects/Nepomuk/QuickStart/en
- Projects/Nepomuk/Repositories
- Projects/Nepomuk/Repositories/en
- Projects/Nepomuk/ResourceWatcher
- Projects/Nepomuk/ResourceWatcher/en
- Projects/Nepomuk/ResourceWatcher/pt-br
- Projects/Nepomuk/Resources
- Projects/Nepomuk/Resources/en
- Projects/Nepomuk/ScenarioExamples
- Projects/Nepomuk/SparqlQueries
- Projects/Nepomuk/SparqlQueries/en
- Projects/Nepomuk/TestEnvironment
- Projects/Nepomuk/TestEnvironment/en
- Projects/Nepomuk/TestEnvironment/pt-br
- Projects/Nepomuk/Uris
- Projects/Nepomuk/Uris/en
- Projects/Nepomuk/Uris/pt-br
- Projects/Nepomuk/VirtuosoInternal
- Projects/Nepomuk/VirtuosoInternal/en
- Projects/Nepomuk/en
- Projects/Nepomuk/kioslaves
- Projects/Nepomuk/kioslaves/en
- Projects/Nepomuk/kioslaves/pt-br