Open dbooth-boston opened 5 years ago
I’ve played with some graphical ideas based on ATNs, see the following link for some experimental work on a test suite for ATN based shape rules, and select “Diagram" from the drop down menu item in place of Turtle. Then click “next” to browse through some examples.
This uses a script that generates DOT format for GraphViz which is rendered in a Web worker. As some of the examples show, the diagram gets too confusing as the graph grows. This could be mitigated if we were using a higher level framework rather than triples. For instance, by distinguishing the role of triples as either links or properties, we could hide properties and provide a means to inspect a node to view a tabular property browser. A similar idea would allow level of detail control that hides or reveals subgraphs. The higher level framework would build on top of the RDF core, and hide some of the details that people find cumbersome to deal with in practice.
p.s. I have been thinking about how to use ATNs as part of production rules. This would involve an "implies" link together with a way to denote variables. It is quite easy to implement a customised mapping from RDF to DOT for rules, and I've used that for ATNs.
My users too, and we are using Ontodia http://ontodia.org/ (we've tweaked a couple of genetrated queries to get it to work on larger graphs).
And there are also commercial products in this space.
I have also worked on adding diagram to LODE-managed ontology documentation here: http://www.linked.data.gov.au/def/asgs/ I've also created diagrams for larger ontologies e.g. a (2 year-old?) OWL version of schema.org
Note to myself - I should add an issue about what I've done - and what else could be done to properly document larger ontologies (and Frankenstein ontologies, and ontologies which do lots of ("small") imports) to the LODE repo - the idea is roughly to do automatically what was done manually in the Semantic Sensor Network Ontology XG report back then. Happy to talk with whoever is interested by this topic..
Datatype properties should be (shown in a table). Only ObjectProperties should be shown as edges to another node rdf:type should be treated the same as a DatatypeProperty for the purposes of display
Amen to that. Literals, rdf:type, and some other objects (eg lookup values such as skos:Concepts) should be shown inline rather than as separate nodes, to avoid cluttering the diagram.
I've made a tool for that called rdfpuml. It uses PlantUML and GraphViz to do the work:
Looking for collaborators to add icons, tooltips, colors (PlantUML does that easily; https://twitter.com/valexiev1/status/902936758773534720), visualize shapes, etc etc etc.
For what it's worth (maybe as a reference?), Stardog recently added visualization along these lines to its Stardog Studio product (initial release blog post, with some gifs, here). The visualization conforms to this requirement (with which we agree!): "Datatype properties should be available in a UI when the user hovers over a node [well, Studio technically does this when the users clicks on a node]. Only ObjectProperties should be shown as edges to another node." In addition to visualizing the sub-graphs produced by CONSTRUCT and DESCRIBE queries, the Studio visualization system includes the ability to "start" a visualization from a user-selected set of select results (by selecting those results with the mouse and then choosing "Visualize"), which was a feature that a lot of users seemed to want (and which I didn't see mentioned explicitly here).
We're continually working on improvements to the visualizations. One of the next things likely to come is one-click visualization of schemas.
I've been using http://vowl.visualdataweb.org/webvowl.html - WebVOWL: Web-based Visualization of Ontologies
It's not great, but has some benefits in being a polished code base.
"My ultimate end users . . want to be able to see graphs. They want to be able to see very large graphs at that. I could not find anything that would visualise RDF in a sane way. . . . Neo4j ... has a nice bouncy and friendly visualisation directly in the search interface . . . . there are way too many edges in many visualisers that I tried to use. I tend to think about information on an IRI as a property of that IRI rather than having one more node which everything seems to point and clutters up the interface. I am thinking here of OWL DatatypeProperty in tools that produce graphviz files. Datatype properties should be available in a UI when the user hovers over a node. Only ObjectProperties should be shown as edges to another node and rdf:type should be treated the same as a DatatypeProperty for the purposes of display (maybe different coloured nodes?)." https://lists.w3.org/Archives/Public/semantic-web/2018Dec/0088.html