@base @prefix dc: @prefix hs: @prefix ozone: @prefix task: @prefix applet: @prefix slide: @prefix vc: @prefix layout: @prefix summary: @prefix data: @prefix op: @prefix construct: @prefix create: @prefix marble: @prefix cv: @prefix metadata: @prefix help: @prefix lensui: @prefix graph: @prefix vowl: @prefix biopax: @prefix opdata: @prefix gsk: @prefix ls: @prefix pwview: @prefix : ################################################################################ # Demonstration data method :doCleanup ; dc:title "GSK3B dashboard" ; rdf:type op:Operation remove ?x remove ?x remove ?x replace lensui:dataSetAspectPart ?x "false" ozone:navigate gsk:GSK3betaTopic add { hs:classView ozone:WebView } add { opdata:startingPoints hs:member :demo } add { :demo rdf:type hs:Collection ; dc:title "Semantic Web for Life Sciences GSK3B demo" ; hs:member :doCleanup ; hs:member } ################################################################################ # Main view definition add { ls:TheraTopic hs:classView :TopicView } add { ls:Target hs:classView :TargetIconView ; vowl:titleSourcePredicate ls:code } add { :targetIconViewPart rdf:type ozone:SWTPart ; rdf:type ozone:Part ; rdf:type ozone:IconViewPart ; rdf:type ozone:ViewPart ; ozone:viewDomain :TargetIconView ; hs:javaImplementation ${ rdf:type hs:JavaClass ; hs:className "edu.mit.lcs.haystack.ozone.standard.widgets.parts.TemplatePartContainerPart" } ; ozone:template ${ rdf:type slide:Block ; slide:borderWidth "2" ; slide:border "2" ; slide:margin "5" ; slide:bgcolor "red" ; slide:child ${ rdf:type summary:Title ; ozone:onClick ozone:underlyingHyperlink } } } add { ls:Compound hs:classView :CompoundIconView ; } add { :compoundIconViewPart rdf:type ozone:SWTPart ; rdf:type ozone:Part ; rdf:type ozone:IconViewPart ; rdf:type ozone:ViewPart ; ozone:viewDomain :CompoundIconView ; hs:javaImplementation ${ rdf:type hs:JavaClass ; hs:className "edu.mit.lcs.haystack.ozone.standard.widgets.parts.TemplatePartContainerPart" } ; ozone:template ${ rdf:type slide:Block ; slide:borderWidth "1" ; slide:border "1" ; slide:margin "3" ; slide:fontSize "7" ; slide:width "50" ; slide:child ${ rdf:type slide:ColumnSet ; slide:children @( ${ rdf:type slide:Image ; slide:source } ${ rdf:type summary:Title ; ozone:onClick ozone:underlyingHyperlink } ) } } } add { gsk:ChemicalEntity hs:classView :ChemicalEntityIconView } add { :compoundDotViewPart rdf:type ozone:SWTPart ; rdf:type ozone:Part ; rdf:type pwview:DotViewPart ; rdf:type ozone:ViewPart ; ozone:viewDomain :CompoundIconView ; hs:javaImplementation ${ rdf:type hs:JavaClass ; hs:className "edu.mit.lcs.haystack.ozone.standard.widgets.parts.TemplatePartContainerPart" } ; ozone:template ${ rdf:type slide:Block ; ozone:onClick ozone:underlyingHyperlink ; slide:bgcolor "white" ; slide:child ${ rdf:type slide:Image ; slide:source } } } add { :chemicalEntityDotViewPart rdf:type ozone:SWTPart ; rdf:type ozone:Part ; rdf:type pwview:DotViewPart ; rdf:type ozone:ViewPart ; ozone:viewDomain :ChemicalEntityIconView ; hs:javaImplementation ${ rdf:type hs:JavaClass ; hs:className "edu.mit.lcs.haystack.ozone.standard.widgets.parts.TemplatePartContainerPart" } ; ozone:template ${ rdf:type slide:Block ; ozone:onClick ozone:underlyingHyperlink ; slide:bgcolor "#9090ff" ; slide:child ${ rdf:type slide:Image ; slide:source } } } add { :chemicalEntityIconViewPart rdf:type ozone:SWTPart ; rdf:type ozone:Part ; rdf:type ozone:IconViewPart ; rdf:type ozone:ViewPart ; ozone:viewDomain :ChemicalEntityIconView ; hs:javaImplementation ${ rdf:type hs:JavaClass ; hs:className "edu.mit.lcs.haystack.ozone.standard.widgets.parts.TemplatePartContainerPart" } ; ozone:template ${ rdf:type slide:Block ; slide:borderWidth "1" ; slide:border "1" ; slide:margin "3" ; slide:fontSize "7" ; slide:width "50" ; slide:bgcolor "#9090ff" ; slide:child ${ rdf:type slide:Paragraph ; slide:children @( ${ rdf:type summary:Title ; ozone:onClick ozone:underlyingHyperlink } slide:newLine ${ rdf:type slide:Text ; ozone:dataSource ${ rdf:type data:LiteralPropertySource ; ozone:dataSource data:underlyingSource ; data:predicate ls:status } } ) } } } add { :layoutConstraint rdf:type layout:VerticalFlowConstraint ; layout:minColumnWidth "350" ; slide:maxWidth "800" ; ozone:viewPartClass lensui:IndividualAspectViewPart ; layout:spansAllColumnsDataSource ${ rdf:type data:StatementExistenceSource ; data:predicate lensui:spansAllColumns ; data:object "true" } } ########################################### # To make another, rename both # example:familyViewPart # and # example:FamilyView ########################################### add { :topicViewPart rdf:type ozone:SWTPart ; rdf:type ozone:Part ; rdf:type ozone:InteractiveViewPart ; rdf:type ozone:ViewPart ; ########################################### # Name of the view class (from above) ########################################### ozone:viewDomain :TopicView ; ########################################### # View name to show in the left hand side ########################################### vc:toolbarCaption "Topic view" ; ozone:cacheStyle ozone:cacheDisabled ; hs:javaImplementation ${ rdf:type hs:JavaClass ; hs:className "edu.mit.lcs.haystack.ozone.standard.widgets.parts.TemplatePartContainerPart" } ; ozone:template ${ rdf:type slide:Slide ; slide:bgcolor "#fffef9" ; slide:cropChildWidth "true" ; slide:child ${ rdf:type slide:RowSet ; slide:children @( lensui:titleHeader ${ rdf:type slide:Block ; slide:cropChildWidth "true" ; slide:child ${ rdf:type ozone:DataProviderHost ; ozone:hostedDataProvider data:underlyingSource ; ozone:propertyName lensui:underlyingSource ; slide:child ${ rdf:type layout:Layout ; ozone:dataSource ${ rdf:type data:DAMLListSource ; data:damlList @( ########################################### # Lenses to show, in order ########################################### :targetLens :groupMembersLens ls:altDisease :diseaseLens # :pathwayLens ) } ; layout:layoutConstraint :layoutConstraint } } } ) } } } ################################################################################ # Group members lens add { ls:role rdf:type daml:DatatypeProperty ; rdf:type rdf:Property ; rdfs:label "Role" } add { ls:department rdf:type daml:DatatypeProperty ; rdf:type rdf:Property ; rdfs:label "Department" } add { ls:email rdf:type daml:DatatypeProperty ; rdf:type rdf:Property ; rdfs:label "E-mail" } add { ls:Person ozone:icon ; rdfs:label "Person" } add { :groupMembersLens rdf:type lensui:DataSetAspect ; # lensui:spansAllColumns "true" ; dc:title "Group members" ; lensui:dataSource ${ rdf:type data:RDFQuerySetSource ; data:existentials @( ?project ?member ) ; data:targetExistential ?member ; data:statement ${ data:subjectDataSource lensui:underlyingSource ; data:predicate ls:focusFor ; data:object ?project } ; data:statement ${ data:subject ?project ; data:predicate ls:team ; data:object ?member } } ; lensui:layoutConstraint ${ rdf:type layout:ListViewConstraint ; ozone:viewPartClass ozone:FieldSetViewPart ; layout:fields ${ rdf:type data:HSListSource ; data:hsList ${ rdf:type hs:List ; hs:list @( ########################################### # This is a list of the headers to show ########################################### ${ rdf:type layout:Field ; layout:fieldID summary:iconAspect ; layout:fieldDimension "20" ; layout:layoutConstraint :reportLayoutConstraint } ${ rdf:type layout:Field ; ########################################### # This built-in lens shows dc:title or # rdfs:label ########################################### layout:fieldID summary:titleAspect ; layout:fieldDimension "25%" ; layout:layoutConstraint :reportLayoutConstraint ; layout:sortDataSourceType summary:TitleSource } ${ rdf:type layout:Field ; layout:fieldID ls:role ; layout:fieldDimension "20%" ; layout:layoutConstraint :reportLayoutConstraint ; layout:sortDataSourceType summary:TitleSource } ${ rdf:type layout:Field ; layout:fieldID ls:department ; layout:fieldDimension "20%" ; layout:layoutConstraint :reportLayoutConstraint ; layout:sortDataSourceType summary:TitleSource } ${ rdf:type layout:Field ; layout:fieldID ls:email ; layout:fieldDimension "20%" ; layout:layoutConstraint :reportLayoutConstraint ; layout:sortDataSourceType summary:TitleSource } ) } } ; layout:headers layout:defaultHeaders ; layout:sortBy ${ rdf:type data:SortingListSource ; data:sortDataSource ${ rdf:type summary:TitleSource } } } } ################################################################################ # Target lens add { :targetLens rdf:type :GraphLens ; dc:title "Target overview" ; ########################################### # To make lenses automatically span all # the columns, use this property: ########################################### lensui:spansAllColumns "true" ; ########################################### # Here is an example of a reverse arrow ########################################### graph:showArrow ${ rdf:type data:RDFQueryAspect ; data:sourceExistential ?compound ; data:targetExistential ?target ; rdfs:label "targets" ; data:existentials @( ?compound ?target ) ; data:statement ${ data:subject ?target ; data:predicate ls:for ; data:object ?compound } } } ################################################################################ # Alternative diseases lens add { ls:altDisease rdfs:label "Alternative diseases" } ################################################################################ # Disease lens add { :diseaseLens rdf:type lensui:SlideAspect ; dc:title "Primary disease" ; lensui:slide ${ rdf:type slide:Block ; slide:margin "5" ; slide:child ${ rdf:type slide:Paragraph ; slide:children @( ${ rdf:type ozone:ViewContainer ; ozone:dataSource ${ rdf:type data:RDFQuerySetSource ; data:existentials @( ?disease ) ; data:extract "true" ; data:targetExistential ?disease; data:statement ${ data:subjectDataSource lensui:underlyingSource ; data:predicate ls:primaryDisease ; data:object ?disease } } ; ozone:viewPartClass ozone:PhraseViewPart } slide:newLine ${ rdf:type ozone:ScrollableViewContainer ; ozone:dataSource ${ rdf:type data:RDFQuerySetSource ; data:existentials @( ?disease ?omim #[?html]# ) ; data:extract "true" ; data:targetExistential ?html; data:targetExistential ?omim; data:statement ${ data:subjectDataSource lensui:underlyingSource ; data:predicate ls:primaryDisease ; data:object ?disease } ; data:statement ${ data:subject ?disease ; data:predicate ls:omim ; data:object ?omim } ; data:statement ${ data:subject ?omim ; data:predicate ls:omimWeb ; data:object ?html } #[ data:statement ${ data:subject ?omim ; data:predicate ; data:object ?html } ; data:statement ${ data:subject ?html ; data:predicate dc:format ; data:object }]# } ; ozone:viewPartClass ozone:InteractiveViewPart } ) } } } ################################################################################ # Pathway lens add { :pathwayLens rdf:type lensui:SlideAspect ; lensui:spansAllColumns "true" ; dc:title "Pathway" ; lensui:slide ${ rdf:type slide:Block ; slide:margin "5" ; slide:child ${ rdf:type slide:Paragraph ; slide:children @( ${ rdf:type ozone:ViewContainer ; ozone:viewPartClass ozone:RawViewPart } ) } } } add { :graphLensPart rdf:type ozone:SWTPart ; rdf:type ozone:Part ; rdf:type lensui:LensPart ; ozone:dataDomain :GraphLens ; hs:javaImplementation ${ rdf:type hs:JavaClass ; hs:className "edu.mit.lcs.haystack.ozone.standard.widgets.parts.TemplatePartContainerPart" } ; ozone:template ${ rdf:type graph:GraphExplorerContainerPart ; marble:graphExplorerDataSource ${ ozone:dataSource ${ rdf:type data:ResourcePropertySource ; ozone:dataSource lensui:underlyingSource ; data:predicate ls:targetGene } ; rdf:type graph:GraphExplorerSource ; marble:relationships ${ rdf:type data:PredicateSetSource ; ozone:dataSource data:underlyingSource ; data:predicate graph:showArrow } } ; slide:child ${ rdf:type slide:Block ; slide:height "250" ; slide:child ${ rdf:type marble:Diagram ; ozone:dataSource ${ rdf:type marble:ContextHostedSetSource ; data:property marble:graphExplorerDataProvider } ; marble:arcDataSource ${ rdf:type graph:GraphExplorerArcSetSource } ; layout:focus ${ rdf:type data:ContextHostedResourceSource ; data:property layout:focus } } } } }