Projects/Nepomuk/ScenarioExamples

    From KDE TechBase
    Revision as of 20:10, 6 November 2009 by Tampakrap (talk | contribs)

    Scenario Examples

    For each scenario, we find N3 data illustrating the scenario. The decisions and alternatives we have are taken into account.


    Use Cases

    Claudia and Berit had their wedding in Holland.


    Dirk wants to share a music file with Claudia

    Claudia wants to have access to Dirk's rating and other annotations.

    Claudia wants to share her wedding pictures with Dirk

    Dirk is not online

    The system sends an email including the pictures and their metadata.

    Dirk requests the wedding calendar from Claudia

    # Claudia's wedding event as it is in her calendar
    <nepomuk:/ctx/606282b1-cb04-11de-8a39-0800200c9a66> {
      <nepomuk:/res/606282b0-cb04-11de-8a39-0800200c9a66> a ncal:Event;
        nie:plainTextContent "Our wedding, everyone is invited";
        nie:title "Claudia's and Berit's wedding";
        ncal:dtstart <urn:uuid:9f56840d-de5b-43ba-be6f-c7d0e7097272>;
        <urn:uuid:9f56840d-de5b-43ba-be6f-c7d0e7097272> ncal:dateTime "2009-11-06T12:00:00.000+01:00"^^xsd:dateTime .
        ncal:dtend <urn:uuid:9f56840d-de5b-43ba-be6f-c7d0e7097273>;
        <urn:uuid:9f56840d-de5b-43ba-be6f-c7d0e7097273> ncal:dateTime "2009-11-08T19:00:00.000+01:00"^^xsd:dateTime .
    }
    <nepomuk:/ctx/606282b1-cb04-11de-8a39-0800200c9a66-metadata> {
      <nepomuk:/ctx/606282b1-cb04-11de-8a39-0800200c9a66> 
        a nrl:InstanceBase ;
        nao:created "2009-06-03T08:19:18.465Z"^^xsd:dateTime;
        nao:creator <nepomuk://[email protected]/res/606282b3-cb04-11de-8a39-0800200c9a66>.
     
      <urn:nepomuk:local:eb343fa9-47ec-4dae-b8d0-fb10c7b63f3d-metadata>
        a nrl:GraphMetadata ;
        nrl:coreGraphMetadataFor 
          <urn:nepomuk:local:eb343fa9-47ec-4dae-b8d0-fb10c7b63f3d> .
    }
    
    # Dirks request
    # Dirk sends claudia a email, sms, text, jabber, whatever - 
    #   "Hey, share that wedding with me"
    # Claudia answers by sending him a "KDE open social whatever" answer 
    # using Jabber and/or email containing the following RDF
    
    ... exactly the same RDF as above.
    
    # Dirk includes it in his local store.
    
    ... exactly the same RDF as above.
    
    # Dirk is looking at his calendar and wants to get updates from claudia on the event.
    
    SELECT ?source WHERE { 
      GRAPH ?c {<nepomuk:/res/606282b0-cb04-11de-8a39-0800200c9a66> ?_p ?_o. } 
      {?c nao:creator ?source.} 
    }
    result: claudia
    ?c = <nepomuk://[email protected]/res/606282b3-cb04-11de-8a39-0800200c9a66> 
    
    call: JABBER GET CBD AROUND <nepomuk:/res/606282b0-cb04-11de-8a39-0800200c9a66> FROM nepomuk://[email protected]/
    
    

    Data is gathered on one USB stick, tagged with either embarrassing or childhood

    The whole wedding folder is archived on DVD including the metadata

    One year later the data should still be accessible.

    Source in uri:

    <nepomuk:/ctx/13577> { <nepomuk://[email protected]/res/34c4c7c8-cb05-11de-8a39-0800200c9a66> a nco:Contact . nco::fullName "Claudia"

    . <nepomuk://[email protected]/res/e8a68b30-cb04-11de-8a39-0800200c9a66> a nepo:Image ; nepo:file "/wedding/picture1.jpg" ; nao:hasTag [ a nao:Tag ; nao:prefLabel "embarrassing" ] , [ a nao:Tag ; nao:prefLabel "berit" ] , [ a nao:Tag ; nao:prefLabel "claudia" ] ; nao:creator <nepomuk://[email protected]/res/34c4c7c8-cb05-11de-8a39-0800200c9a66>

    . <nepomuk://[email protected]/res/34c4c7c1-cb05-11de-8a39-0800200c9a66> a nepo:Image ; nepo:file "/wedding/picture2.jpg" ; nao:hasTag [ a nao:Tag ; nao:prefLabel "young" ] ; nao:creator <nepomuk://[email protected]/res/34c4c7c8-cb05-11de-8a39-0800200c9a66>

    }

    Fulfills req


    Source as nepo:hasSource:

    <nepomuk:/ctx/13577> { <urn:uuid:4c4c7c8-cb05-11de-8a39-0800200c9a66> a nco:Contact ; nco::fullName "Claudia" ; nepo:hasSource <xmpp://[email protected]/>

    . <urn:uuid:e8a68b30-cb04-11de-8a39-0800200c9a66> a nepo:Image ; nepo:file "/wedding/picture1.jpg" ; nepo:hasSource <xmpp://[email protected]/> ; nao:hasTag [ a nao:Tag ; nao:prefLabel "embarrassing" ] , [ a nao:Tag ; nao:prefLabel "berit" ] , [ a nao:Tag ; nao:prefLabel "claudia" ] ; nao:creator <urn:uuid:4c4c7c8-cb05-11de-8a39-0800200c9a66>

    . <urn:uuid:34c4c7c1-cb05-11de-8a39-0800200c9a66> a nepo:Image ; nepo:file "/wedding/picture2.jpg" ; nepo:hasSource <xmpp://[email protected]/> ; nao:hasTag [ a nao:Tag ; nao:prefLabel "young" ] ; nao:creator <urn:uuid:4c4c7c8-cb05-11de-8a39-0800200c9a66> }

    Fulfills req


    Source in graphs:

    <nepomuk://[email protected]/ctx/6121> { <urn:uuid:34c4c7c8-cb05-11de-8a39-0800200c9a66> a nco:Contact ; nco::fullName "Claudia" ; nepo:hasSource <xmpp://[email protected]/> }

    <nepomuk://[email protected]/ctx/09851> { <urn:uuid:e8a68b30-cb04-11de-8a39-0800200c9a66> a nepo:Image ; nepo:file "/wedding/picture1.jpg" ; nao:hasTag [ a nao:Tag ; nao:prefLabel "embarrassing" ] , [ a nao:Tag ; nao:prefLabel "berit" ] , [ a nao:Tag ; nao:prefLabel "claudia" ] ; nao:creator <urn:uuid:4c4c7c8-cb05-11de-8a39-0800200c9a66> }

    <nepomuk://[email protected]/ctx/5513> { <urn:uuid:34c4c7c1-cb05-11de-8a39-0800200c9a66> a nepo:Image ; nepo:file "/wedding/picture2.jpg" ; nao:hasTag [ a nao:Tag ; nao:prefLabel "young" ] ; nao:creator <urn:uuid:4c4c7c8-cb05-11de-8a39-0800200c9a66> }


    Claudia gets a lot of pictures from people, tagged with creators and people on the pictures

    Now Claudia wants to find all pictures that depict herself and Berit.

    Claudia needs to share the wlan access key with all guests at the wedding

    <nepomuk:/ctx/08933dfb-cd33-498d-84c1-2db1d83e5af4> {
        <nepomuk:/res/edf808e5-9036-4292-90b4-d90e975ac117> 
            a xesam:File ;
            a nfo:FileDataObject ;
            nao:lastModified "2009-08-26T10:53:38.966Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
            nie:plainTextContent "asdf123"^^<http://www.w3.org/2001/XMLSchema#string> ;
            xesam:url "/home/claudia/networkkey.txt"^^<http://www.w3.org/2001/XMLSchema#string> ;
            xesam:fileExtension "txt"^^<http://www.w3.org/2001/XMLSchema#string> ;
            nie:isPartOf <file:///home/claudia> ;
            nie:contentSize "7"^^<http://www.w3.org/2001/XMLSchema#unsignedInt> ;
            nie:url <file:///home/claudia/networkkey.txt> ;
            nao:created "2009-08-26T10:53:38.516Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
    }
    <nepomuk:/ctx/08933dfb-cd33-498d-84c1-2db1d83e5af4-metadata> {
        <nepomuk:/ctx/08933dfb-cd33-498d-84c1-2db1d83e5af4> a nrl:InstanceBase> ;
            nao:created "2009-11-06T17:26:55.223Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
            nao:creator <nepomuk:/res/Claudia> ;
            strigi:indexGraphFor <nepomuk:/res/edf808e5-9036-4292-90b4-d90e975ac117> .
        <nepomuk:/ctx/08933dfb-cd33-498d-84c1-2db1d83e5af4-metadata> a nrl:GraphMetadata ;
            nrl:coreGraphMetadataFor <nepomuk:/graph/08933dfb-cd33-498d-84c1-2db1d83e5af4> .
    }
    

    Dirk gets a set of music files by Claudia

    Claudia has rated and tagged the files. Dirk integrates the files into his own system and changes tags and ratings. Later he needs to determine which music Claudia likes because he will act as the DJ at her wedding.

    <nepomuk:/ctx/14fc3d4b-c150-4e57-991c-b876b26248d4> {
        <nepomuk:/res/04f64db3-f4b8-4d09-a537-bcd143fab70c> a nfo:FileDataObject ;
            a nmmMusicPiece ;
            nco:creator <nepomuk:/res/Mika> ;
            nie:title "Grace Kelly"^^<http://www.w3.org/2001/XMLSchema#string> ;
            xesam:fileExtension "mp3"^^<http://www.w3.org/2001/XMLSchema#string> ; 
            nie:mimeType "audio/mpeg"^^<http://www.w3.org/2001/XMLSchema#string> ;
            nie:url <file:///home/claudia/Music/Mika.mp3> ;
            nfo:fileName "Mika.mp3"^^<http://www.w3.org/2001/XMLSchema#string> ;
    	nao:rating "9" ; 
            nao:hasTag <nepomuk:/res/nice> ;
            nao:hasTag <nepomuk:/res/love> .
    }
    <nepomuk:/ctx/14fc3d4b-c150-4e57-991c-b876b26248d4-metadata> {
        <nepomuk:/ctx/14fc3d4b-c150-4e57-991c-b876b26248d4> a nrl:InstanceBase> ;
            nao:created "2009-11-06T17:26:55.223Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
            nao:creator <nepomuk:/res/Claudia> ;
            strigi:indexGraphFor <nepomuk:/ctx/14fc3d4b-c150-4e57-991c-b876b26248d4> .
        <nepomuk:/ctx/14fc3d4b-c150-4e57-991c-b876b26248d4-metadata> a nrl:GraphMetadata ;
            nrl:coreGraphMetadataFor <nepomuk:/ctx/14fc3d4b-c150-4e57-991c-b876b26248d4> .
    }
    <nepomuk:/ctx/c3703e3b-d0dc-4c1c-a2f4-11e4aa081723> {
        <nepomuk:/res/04f64db3-f4b8-4d09-a537-bcd143fab70c> nao:hasTag <nepomuk:/res/toplayatwedding> ;
            nao:rating "6" .
    }
    <nepomuk:/ctx/c3703e3b-d0dc-4c1c-a2f4-11e4aa081723-metadata> {
        <nepomuk:/ctx/c3703e3b-d0dc-4c1c-a2f4-11e4aa081723> a nrl:InstanceBase> ;
            nao:created "2009-11-06T17:26:55.223Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
            nao:creator <nepomuk:/res/Dirk> ;
            strigi:indexGraphFor <nepomuk:/ctx/c3703e3b-d0dc-4c1c-a2f4-11e4aa081723> .
        <nepomuk:/ctx/c3703e3b-d0dc-4c1c-a2f4-11e4aa081723-metadata> a nrl:GraphMetadata ;
            nrl:coreGraphMetadataFor <nepomuk:/ctx/c3703e3b-d0dc-4c1c-a2f4-11e4aa081723> .
    }
    

    Dirk wants to exclude his comments about Claudia's ugly dress from the pictures he sends her

    Example data

    Current state of data in KDE4:

    <urn:A> {
      <file:///home/foobar/someimage.jpg>
         a nfo:Image ;
         nao:desciption "Ugly!" .
    }
    
    <urn:B> {
       <urn:B> a nrl:GraphMetadata .
       <urn:A> a nrl:IntanceBase ;
               nao:created "2009-11-05T...."^^xsd:dateTime .
    }
    
    <urn:C> {
      <file:///home/foobar/someimage.jpg>
         nao:rating 5 .
    }
    
    <urn:D> {
       <urn:D> a nrl:GraphMetadata .
       <urn:C> a nrl:IntanceBase ;
               nao:created "2009-11-06T...."^^xsd:dateTime .
    }
    

    Todo

    To exclude one property we would need privacy settings on the property level. This would mean storing each property in its own graph which is not done in KDE at the moment (but would be easy to achieve).

    Then we could easily mark the nao:description as non-public.

    Claudia's brother has downloaded a lot of the music Claudia gave to Dirk

    He needs the music files to be untraceable to him. However he still wants ratings and tags to be preserved.

    After changing his jabber ID Dirk still wants to be able to access all his archived data

    Dirk has two jabber IDs (SAP for work stuff and Jabber.org for private stuff)

    He wants to share work information using his SAP ID and wedding pictures using his personal ID.

    Dirk downloads a wedding picture from Claudia's picture page including all comments

    The information about who wrote which comment is preserved.

    Dirk starts writing a presentation about Claudia's youth and invites Claudia's brother to write it collaboratively on his computer

    Dirk syncs the wedding photos with his mobile and tags them on the plane

    When he comes home he syncs his phone again and the tags are synced, too.

    Dirk searches for music that Claudia likes on his phone

    The phone gives results from his home computer with optional access to download them.