Partecipanti
- Cristiano Fugazza
- Monica Pepe
- Laura Criscuolo
- Stefano Menegon
- Diego Migliavacca
- Andrea Mancuso
Agenda
- Valutazione stato attuale interfaccia al seguente indirizzo [[1]]
- Discussione RDF schema per la rappresentazione dei profili
Rappresentazione dei profili
Schema di riferimento userProfile.ttl
@prefix : <http://sp7.irea.cnr.it/rdfdata/schemas#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
# classes
# class representing profiles, that is, widget configurations associated with users
:Profile rdf:type rdfs:Class .
# profiles define entries
:Entry rdf:type rdfs:Class .
# entries specify which widget they relate to
:Widget rdf:type rdfs:Class .
# entries can be associated with parameters to be added to widget requests
:Parameter rdf:type rdfs:Class .
# entries can also define operations to be executed upo loading of the widget
# since profile entries define (ordered) API calls as an rdf:List, list elements
# cannot have class :APICall as range, using property definitions seems to mitigate this
:APICall rdf:type rdfs:Class .
# properties
# a profile is related to a specific user (which can also be the default one)
:owner rdf:type rdfs:Property ;
rdfs:domain :Profile ;
rdfs:range foaf:Person .
# property "item" relate entries to the profile they belong to
:item rdf:type rdfs:Property ;
rdfs:domain :Profile ;
rdfs:range :Entry .
# property "target" indicate which widget an entry refers to
:target rdf:type rdfs:Property ;
rdfs:domain :Entry ;
rdfs:range :Widget .
# property "parameter" specify request parameters
:parameter rdf:type rdfs:Property ;
rdfs:domain :Entry ;
rdfs:range :Parameter .
# property "paramName" specify the name of the parameter
:paramName rdf:type rdfs:Property ;
rdfs:domain :Parameter ;
rdfs:range xsd:string .
# property "paramValue" specify the value of the parameter
:paramValue rdf:type rdfs:Property ;
rdfs:domain :Parameter ;
rdfs:range xsd:string .
# property "apiCalls" specify a list of functions to be called upon loading of a widget
:apiCalls rdf:type rdfs:Property ;
rdfs:domain :Entry ;
rdfs:range rdf:List .
# property "functionName" specify the name of the API function
:functionName rdf:type rdfs:Property ;
rdfs:domain :APICall ;
rdfs:range xsd:string .
# property "functionArgs" specify additional parameters for the API function call
:functionArgs rdf:type rdfs:Property ;
rdfs:domain :APICall ;
rdfs:range xsd:string .
# property "index" specify the ordering of widgets in the workspaces
:index rdf:type rdfs:Property ;
rdfs:domain :Entry ;
rdfs:range xsd:positiveInteger .
# property "workspace" specify the workspace a given profile entry refers to
:workspace rdf:type rdfs:Property ;
rdfs:domain :Entry ;
rdfs:range xsd:positiveInteger .
# default data
:defProfile rdf:type :Profile ;
:owner :defUser ;
:item [
:target :widget_1 ;
:parameter [
:paramName "pippo" ;
:paramValue "A"
] ;
:parameter [
:paramName "pluto" ;
:paramValue "B"
] ;
:apiCalls [
rdf:first [
:functionName "someFunction" ;
:functionArgs "someArgument"
] ;
rdf:rest [
rdf:first [
:functionName "someOtherFunction" ;
:functionArgs "someOtherArgument"
] ;
rdf:rest rdf:nil
]
] ;
:index 1 ;
:workspace 1
] ;
:item [
:target :widget_2 ;
:parameter [
:paramName "ying" ;
:paramValue "0"
] ;
:parameter [
:paramName "yang" ;
:paramValue "1"
] ;
:apiCalls [
rdf:first [
:functionName "anotherFunction" ;
:functionArgs "anotherArgument"
] ;
rdf:rest rdf:nil
] ;
:index 2 ;
:workspace 1
] ;
:item [
:target :widget_3 ;
:parameter [
:paramName "foo" ;
:paramValue "X"
] ;
:parameter [
:paramName "bar" ;
:paramValue "Y"
] ;
:apiCalls [
rdf:first [
:functionName "oneMoreFunction" ;
:functionArgs "OneMoreArgument"
] ;
rdf:rest rdf:nil
] ;
:index 1 ;
:workspace 2
] .
:defUser rdf:type foaf:Person .
:widget_1 rdf:type :Widget .
:widget_2 rdf:type :Widget .
:widget_3 rdf:type :Widget .