Code Monkey home page Code Monkey logo

personalknowledgebase's Introduction

Personal Knowledge Base

Storing data about people.

Example of data

  • contact manager type information : name, phone, address, ...
  • photos related to people (taken_by, containing, ...)
  • messages by people
  • events attended by people :
    • conferences
    • classes
    • meetings
  • other kind of events :
    • clothe weared
    • meals
    • code written
  • other kind of interesting information :
    • words known in languages
    • tv series watched
    • contacts
    • projects

Technologies

  • RDF graphes
  • SPARQL
  • triplestore independent but virtuoso will be used to start with

Functionnalities expected

CRUD

  • create data : SPARQL INSERT query
  • read data : SELECT
  • update data : UPDATE
  • delete data : DELETE

It would be interesting to be able to download all the data in one click if needed.

Architecture of the project

  • backend : expose the SPARQL interface and a REST API to do the most simple things
  • frontend : several ones are possibles for the various platform (pc, android) but start with a website
  • importers : try and create importers from various data source into the graph
  • exporters : export data back to the data sources

Website

  • A page for the documentation of the backend (which exposes the raw functionnalities)
  • Some examples of information display from the knowledge base :
    • A list of people in the knowledge base
    • A page for the basic information about each person
    • A page for the tv series watched by that person
    • Using HybridQa to answer question in that KB

It would be nice to have some kind of general pages to display the triples of an entities like the DBpedia VAD.

The website doesn't have to know how to display everything from the knowledge base.

Ontologies used

Use standard ontologies as often as possible. Examples :

  • DBpedia ontology
  • Yago ontology
  • foaf ontology

If a property or a type doesn't exist in a standard ontology, create a new property/type and it would be nice to somehow store it in an owl file.

Importers

Import data from :

  • FaceBook
  • Google Contact
  • trackt.tv
  • memrise
  • Hangout
  • Messenger

These importers would be used in two ways :

  • bulk import : import everything at a given time
  • online importing : sync new data

Kind of possible ouputs :

  • write turtle files
  • execute SPARQL insert/update/delete queries

Exporters

In order to make the knowledge base in sync with the rest of the services the user is using, it might be interesting to push back new information from the knowledge base to the services.

That part might be more complicated and it is not a priority.

Permissions

Use graphs and virtuoso users to limit access to the right parts of the graph.

Languages for implementation

Probably java for the backend and java or node.js for the frontend.

Related works

  • Solid : protocols to build social linked applications, interesting but it seems too broad to apply it here
  • Linked Data Platform : allow CRUD access to linked data
  • rww.io : RWW.IO is a personal Linked Data store
  • Facebook Open Graph : pretty solid technology, but sadly it's doesn't propose data in any standard way nor does it allow to put any kind of personalized information in it. And the third problem is it is a totally centralized software that cannot be stored elsewhere than on Facebook servers
  • Freebase / new Google knowledge graph API : allow any personalized informations, but all the other problems of the Facebook Open Graph are there. However, it will be very interesting to see the possibilities of interaction between those and PersonalKnowledgeBase through importers, exporters and federated queries.
  • WebID linked data way to do authentification
  • Any interesting articles about that in the semantic web community ?

personalknowledgebase's People

Contributors

rom1504 avatar

Stargazers

 avatar  avatar YoungChief avatar Thibault Gérondal avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.