On Sat, Mar 31, 2012 at 12:06 AM, Yigang Zhou <
egang...@gmail.com> wrote:
> Dear Andrea, Andra and Alexander,
>
> It's really nice to discuss with you. I've got many valuable feedbacks
> here. Now I'm clear about the details of the project. I believe I can
> make it this summer. My project proposal has just been submitted to
> NRNB in GSoC website:
>
http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/egangzhou/23002
> Any suggestions and comments are welcome!
>
> Best regards,
> Yigang Zhou
>
> On Tue, Mar 27, 2012 at 1:46 AM, Andrea Splendiani
> <
sergen...@gmail.com> wrote:
>> Hi,
>> I think is good to have a set of references data sets. I would add uniprot and linked life data.
>>
>> Ciao,
>> Andrea
>>
>> Sent from my iPad
>>
>> On 26 Mar 2012, at 17:55, Andra <
andra.wa...@gmail.com> wrote:
>>
>>> I really like how this thread is developing.
>>>
>>> Is there a any preference among us to build the plugin around a
>>> selected set of SPARQL-endpoints and RDF datasets?
>>> I know I would propose WikiPathways, ChEMBL and Scaiview.
>>>
>>> Andra
>>>
>>>
>>> On Mar 25, 7:04 pm, Andrea Splendiani <
and...@sgtp.net> wrote:
>>>> Hi,
>>>> My replies inline, and from an iPad, sorry for typos and being brief!
>>>>
>>>> On 25 Mar 2012, at 13:18, Yigang Zhou <
egang.z...@gmail.com> wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> Dear Andra,
>>>>
>>>>> Thanks a lot for your inspiring ideas! Please check my reply inline.
>>>>
>>>>> On Sun, Mar 25, 2012 at 6:33 AM, Andrea Splendiani <
and...@sgtp.net> wrote:
>>>>>> Hi Yigang, Alexander, Andra,
>>>>
>>>>>> I have dealt a bit both with cytoscape and RDF, also Ondex.org and RDF, so I'm very happy you are interested in this project, as I think there are a lot of cool things that can be done.
>>>>
>>>>>> A few comments on what below:
>>>>>> -) you can easily decide what to use as a label in cytoscape. The main problem in mapping attributes between RDF and cytoscape nodes is that you can have multiple values for the same attributes in RDF. Not in cytoscape (at least that I know). There is not an easy solution for that. But one can go around the problem in a few (dirty) ways.
>>>>>> One notable problematic way may be the type of a node!
>>>>
>>>>> I totally agree with you. Here's an example. Imaging that we have the
>>>>> following two RDF triples:
>>>>> subject -> predicate -> value_1
>>>>> subject -> predicate -> value_2
>>>>> The subject should be mapped to a Cytoscape node with the predicate as
>>>>> an attribute. We can not insert two values into the attribute, can we?
>>>>> Inspired by the "Alias column", can we insert both of them into the
>>>>> attribute with "|" or "," as delimiters (i.e. "value_1|value_2" as the
>>>>> attribute value)? I'm sorry that I don't understand the approach of
>>>>> "type of a node", could you please provide some more details? Thank
>>>>> you!
>>>>
>>>> As Alexander said... There are list. So we won't need hacks!
>>>>
>>>>> Another potential issue could be the visualization of "multiple
>>>>> predicates for the same two nodes". Suppose there're two RDF triples:
>>>>> subject -> predicate_1 -> object
>>>>> subject -> predicate_2 -> object
>>>>> The subject and object should be two different Cytoscape nodes. But
>>>>> there're two edges (i.e. predicate_1 and predicate_2) linking them. Is
>>>>> this data model applicable for Cytoscape network? Also not sure
>>>>> whether the two edges and their labels will overlap with each other in
>>>>> visualization view.
>>>>
>>>> Same as above: no problems here.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>> -) it would be useful to support some form of reification, as to extract values for edges in Cytoscape. Not RDF:reification. That's another thing ;) but basically you may want to consider some nodes as edges, under some conditions.
>>>>> I agree. If I understand correctly, such reification could be RDF
>>>>> Containers [1] and Collections [2]. Let me take the following four RDF
>>>>> triples of rdf:Bag [1] as an example:
>>>>> subject -> predicate -> _:z
>>>>> _:z -> rdf:type -> rdf:Bag
>>>>> _:z -> rdf:_1 -> object_1
>>>>> _:z -> rdf:_2 -> object_2
>>>>> In this case, we can make the Cytoscape network like this (that is,
>>>>> consider rdf:Bag and _:z nodes as edges):
>>>>> subject (node) - predicate(edge) - object_1(node)
>>>>> subject (node) - predicate(edge) - object_2(node)
>>>>> Do you mean such reification? Or could you please show me some other
>>>>> examples in Biological Ontologies?
>>>>
>>>> That's one example, but you may have some 'custom' reification. Like for example a node representing an interaction having left and white property.
>>>> These tends to be ontology specific, but what is reasonably easy to do is to have a list of conditions/patterns. So for instance, if you look at a Biomax 'interaction' X
>>>> With:
>>>> X left A
>>>> X left B
>>>> X type interaction
>>>> X attribute z
>>>>
>>>> , you propose a query in a contextual menu that transforms X in an edge between A and b, and collect attributes.
>>>> Basically you just want a parametric query linked to types. You can go a long way with this simple thing.
>>>>
>>>>
>>>>
>>>>>> -) related to that, there was a plugin for cytoscape from some company time ago (Bbn?) that was taking sparql constructs query as input of cytoscape. Something like that could be useful to transform edges rapresented as nodes in RDF to edges in cytoscape. And also to get rid of blank nodes.
>>>>> What's the plug-in? Where is the link address of this plug-in? I'm
>>>>> very interested. Can I have a look at it?
>>>>
>>>> Not sure but I'm afraid not. It was proposed at some conference and I saw some demo, they always said it was supposed to be open source, but never saw it. If you Google for Eric Neumann and Bbn you may find something.
>>>> If you are willing to wrestle with old versions/libraries and arcane setup instructions, I can also show you another plugin with a few interesting (albeit complex) ideas in it. But I think that may be premature now.
>>>>
>>>>>> -) it would be very helpful to have a contextual menu that maps to queries, perhaps a selection on the basis of the node type. This is something easy with lot of power!
>>>>> As to " the node type", do you mean rdf:type [3] in RDF or the
>>>>> NODE_TYPE attribute for Cytoscape node?
>>>> RDF:type!
>>>>
>>>>>> -) if you are familiar with Jena, it's alo very easy and useful to get in information from urls, in addition to endpoint.
>>>>> Yes, I know that Jena can load RDF data from the local RDF files, as
>>>>> well as the remote RDF uris. Specially, if the loaded data are OWL
>>>>> ontologies with owl:imports [4] information, Jena can automatically
>>>>> read the imported ontologies [5]. As long as the input of the plug-in
>>>>> is RDF data, it should be able to visualize them as a Cytoscape
>>>>> network, not matter from the local or the remote resources.
>>>>
>>>> Yes, and if you node has an uri (say, a uniprot ones), you can just model.read(uri) and pass it to the code that handle normal sparql result.
>>>>
>>>>> SPARQL has four query forms [6]. I think our plug-in should focus on
>>>>> CONSTRUCT [7] and DESCRIBE [8]. Because they return RDF graph data as
>>>>> the query results, which could the input of the plug-in. However, the
>>>>> other two forms do not, which should be out of the scopes of this GSoC
>>>>> project. More explicitly, SELECT [9] returns all, or a subset of, the
>>>>> variables bound in a query pattern match, which are table like data
>>>>> with rows and columns. ASK [10] returns a boolean indicating whether a
>>>>> query pattern matches or not. Am I in the right direction?
>>>>
>>>> Yes, you may easily support select with some restrictions, but you gain nothing. So construct is ok. Describe as well may be redundant. Importing RDF from Uris helps for a few sources without endpoints (but with RDF).
>>>>
>>>> If there is time and you want to dig into something more complex, one could explore void/spin to customise the visualisation to the dataset.
>>>> You can also play with colors... And which namespaces you want to show in cytoscape (hawkish but very useful, as you don't want to see too much meta information at times).
>>>>
>>>>>> -) not sure where sub graphs are in cytoscape, but it would be interesting to see if they can be mapped (if they exist) to named graphs.
>>>>> I think named graphs [11] can be implemented as edge attributes. An
>>>>> edge attribute carries the graph uri as the value. We can filter the
>>>>> nodes and the edges according this value for different graphs. This is
>>>>> the simplest way, inspired from AllegroGraph's fourth slot [12] for
>>>>> the named graph uri, that I worked on before.
>>>>> Not sure sub graphs are available in Cytoscape 3.x.
>>>>> Are RDF data with named graphs very popular in Biology domain?
>>>>
>>>> Not quite sure. I think if we have sub graph good, otherwise we don't need to care much about named graphs. We may be concerned about provenance, but we can either add the uri, as you say, to edges (and nodes, for clarity ;) ) or take other ways. Or even forget it!
>>>>
>>>> Good!
>>>>
>>>> Ciao,
>>>> Andrea
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>> -) if 3.0 is doable... That's an easy choice ;)
>>>>
>>>>>> I think it's going to be a best-selling plugin!
>>>>
>>>>> Best regards,
>>>>> Yigang Zhou
>>>>
>>>>> [1]
http://www.w3.org/TR/rdf-primer/#containers
>>>>> [2]
http://www.w3.org/TR/rdf-primer/#collections
>>>>> [3]
http://www.w3.org/TR/rdf-schema/#ch_type
>>>>> [4]
http://www.w3.org/TR/owl-ref/#imports-def
>>>>> [5]
http://incubator.apache.org/jena/documentation/ontology/#compound_ont...
>>>>> [6]
http://www.w3.org/TR/rdf-sparql-query/#QueryForms
>>>>> [7]
http://www.w3.org/TR/rdf-sparql-query/#construct
>>>>> [8]
http://www.w3.org/TR/rdf-sparql-query/#describe
>>>>> [9]
http://www.w3.org/TR/rdf-sparql-query/#select
>>>>> [10]
http://www.w3.org/TR/rdf-sparql-query/#ask
>>>>> [11]
http://www.w3.org/TR/rdf-sparql-query/#rdfDataset
>>>>> [12]
http://www.franz.com/agraph/support/documentation/current/agraph-intr...
>>>>
>>>>>> Ciao,
>>>>>> Andrea
>>>>
>>>>>> Sent from my iPad
>>>>
>>>>>> On 24 Mar 2012, at 21:34, Alexander Pico <
ap...@gladstone.ucsf.edu> wrote:
>>>>
>>>>>>> Some response below...
>>>>
>>>>>>> On 3/22/12 8:12 AM, "Yigang Zhou" <
egang.z...@gmail.com> wrote:
>>>>
>>>>>>>> Dear Andra,
>>>>
>>>>>>>> Thanks for your instruction! I can totally understand the project goal
>>>>>>>> and scopes you pointed out. Here's the description of the sub tasks
>>>>>>>> and the corresponding approaches of the project:
>>>>
>>>>>>>> 1. RDF data query through SPARQL endpoints.
>>>>>>>> We can use Apache Jena ARQ [1] to query RDF data from remote SPARQL
>>>>>>>> endpoints. Jena can also be used as the RDF processing engine for
>>>>>>>> other sub tasks. I'm quite familiar with the Jena API with much
>>>>>>>> related coding experience.
>>>>
>>>>>>>> 2. Mapping from RDF data model to Cytoscape network data model
>>>>>>>> RDF resources and their relations/properties should to be mapped to
>>>>>>>> Cytoscape nodes and edges with their attributes. There're some
>>>>>>>> different cases for the data model mapping:
>>>>>>>> (1) If the object of a RDF triple is URIref [2], the subject and
>>>>>>>> object can be Cytoscape network nodes, while the predicate is supposed
>>>>>>>> to be an edge. As to the node/edge name, it can be the full URIref,
>>>>>>>> the compact CURIE [3], or the value of rdfs:label [4] (What's your
>>>>>>>> opinion?).
>>>>
>>>>>>> We can capture all of these as node attributes and then easily switch
>>>>>>> between which is used as the label. Deciding on the default can be done much
>>>>>>> later in the project, after we have some experience viewing these networks.
>>>>
>>>>>>>> (2) If the object is a Literal [5], the predicate becomes an attribute...
>>>>
>>>> read more »
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups "cytoscape-discuss" group.
>>> To post to this group, send email to
cytoscap...@googlegroups.com.
>>> To unsubscribe from this group, send email to
cytoscape-disc...@googlegroups.com.
>>> For more options, visit this group at
http://groups.google.com/group/cytoscape-discuss?hl=en.
>>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups "cytoscape-discuss" group.
>> To post to this group, send email to
cytoscap...@googlegroups.com.
>> To unsubscribe from this group, send email to
cytoscape-disc...@googlegroups.com.
>> For more options, visit this group at
http://groups.google.com/group/cytoscape-discuss?hl=en.
>>
--
You received this message because you are subscribed to the Google Groups "cytoscape-discuss" group.
To post to this group, send email to
cytoscap...@googlegroups.com.
To unsubscribe from this group, send email to
cytoscape-disc...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/cytoscape-discuss?hl=en.