diff --git a/aleksis/core/schema.py b/aleksis/core/schema.py
index 044da9120193ba694aa1d5034baafcbfb872fa17..da4b089dcd3352533d47c8a0a614de7f59c9358a 100644
--- a/aleksis/core/schema.py
+++ b/aleksis/core/schema.py
@@ -3,8 +3,13 @@ from graphene_django import DjangoObjectType
 from graphene_django.forms.mutation import DjangoModelFormMutation
 
 from .forms import PersonForm
-from .models import Person
-from .util.core_helpers import get_app_module, get_app_packages
+from .models import Notification, Person
+from .util.core_helpers import get_app_module, get_app_packages, has_person
+
+
+class NotificationType(DjangoObjectType):
+    class Meta:
+        model = Notification
 
 
 class PersonType(DjangoObjectType):
@@ -22,8 +27,15 @@ class PersonMutation(DjangoModelFormMutation):
 class Query(graphene.ObjectType):
     ping = graphene.String(default_value="pong")
 
+    notifications = graphene.List(NotificationType)
+
     persons = graphene.List(PersonType)
     person_by_id = graphene.Field(PersonType, id=graphene.ID())
+    who_am_i = graphene.Field(PersonType)
+
+    def resolve_notifications(root, info, **kwargs):
+        # FIXME do permission stuff
+        return Notification.objects.all()
 
     def resolve_persons(root, info, **kwargs):
         # FIXME do permission stuff
@@ -32,6 +44,12 @@ class Query(graphene.ObjectType):
     def resolve_person_by_id(root, info, id):
         return Person.objects.get(pk=id)
 
+    def resolve_who_am_i(root, info, **kwargs):
+        if has_person(info.context.user):
+            return info.context.user.person
+        else:
+            return None
+
 
 class Mutation(graphene.ObjectType):
     update_person = PersonMutation.Field()