Sunday, May 13, 2007

Programming with Semantic Web Languages

For my PhD thesis in User Driven Programming I've been experimenting with using Semantic Web Languages as programming languages. The two approaches I've used are:-

Option 1 - To put all the data in Semantic Web languages e.g XML, SVG, RDF/XML, OWL, and then display them using a programming language such as Flash, or Java (applets) -http://www.cems.uwe.ac.uk/~phale/Flash/FlashHCI.htm

http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/JavaTree/AutomaticaOutputSpar/classes/TreeOutput.html.

Option 2 - To use the above languages as meta languages for actual programming -

http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/SparMenu.xml

http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/SparMenu.html

Some of these solutions have used aspects of both approaches. These examples use SVG and JavaScript -http://www.cems.uwe.ac.uk/~phale/InteractiveSVGExamples.htm.

It is becoming increasingly practical to program completely in the Semantic Web languages. These languages enable declarative programming where we tell the computer what we want to do, and a translation is performed either using languages such as JavaScript or Java, or into JavaScript or Java.

The advantages of this form of declarative programming are that we can use a language that is at a much higher level of abstraction, closer to the way people think. I have been creating these programs by editing them in Protege (ontology editor) and using a translator to convert them to whatever code is needed. This makes it possible to perform visual programming in a meta language (OWL) Web Ontology Language (option 2), without needing to worry about how it's implemented. The possibilities for this are that it becomes sufficiently intuitive, so that people can eventually create their own software for a wide variety of tasks, in a point and click way and using similar tools to web page editors. This would enable anyone who is computer literate to program the computer themselves to do their tasks, and if this is of interest to others, they can release their solution over the web.

Technologies such as XForms - http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htm#XForms, XQuery - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/XML/XML.htm#XQuery, and SPARQL - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/RDF/RDF.htm#SPARQL

make it possible to provide the sort of collaborative interactivity that Tim Berners-Lee calls 'Intercreativity' in Weaving the Web - http://www.w3.org/People/Berners-Lee/Weaving/. In this book he also discussed the use of Semantic Web Languages as programming languages. He makes the point that it isn't the power of the language that is important in providing this intercreativity. The simplicity of a language such as RDF makes it easier to provide interconnected solutions to complex problems, without becoming bogged down with the complexity of the language itself, and interoperability problems. Tim Berners-Lee sums up the advantage of a Semantic Web program over programs in other languages. He writes "The advantage of putting the rules in RDF is that in doing so, all the reasoning is exposed, whereas a program is a black box: you don't see what happens inside it." If these rules are also visualised, they are exposed to everyone, including non-programmers.

These advances make it practical to develop a high level visual interface that can allow people to develop open source, open standard, interoperable programs and share them. This can allow the development of open source communities similar to those developing software currently, but only requiring the level of skill it takes to get started in visual collaboration tools such as MySpace.

In Weaving the Web Tim Berners-Lee writes "The Semantic Web, like the Web already, will make many things previously imposible just obvious". I think visual Semantic Web programming is one of those obvious things.

Semantic Web Languages could also be a useful programming tool for creation and editing of E-Learning objects (Stutt and Motta, 2004).

References

Bechhofer, S., Carrol, J., 2004. Parsing owl dl: trees or triples?. In: Proceedings of the 13th international conference on World Wide Web, NY, USA, pp 266-275.

Berners-Lee, T., Fischetti, M., 1999. Weaving the Web. Harper San Francisco; Paperback: ISBN:006251587X - http://www.w3.org/People/Berners-Lee/Weaving/.

Stutt, A., Motta, E., 2004. Semantic Learning Webs. Journal of Interactive Media in Education, 2004 (10). Special Issue on the Educational Semantic Web. ISSN:1365-893X - http://www-jime.open.ac.uk/2004/10.

World Wide Web Consortium (W3C), 2007. Extensible Markup Language (XML) http://www.w3.org/XML/.

World Wide Web Consortium (W3C), 2007. Resource Description Framework (RDF) http://www.w3.org/RDF/.

World Wide Web Consortium (W3C), 2007. Scalable Vector Graphics (SVG) XML Graphics for the Web http://www.w3.org/Graphics/SVG/.

World Wide Web Consortium (W3C), 2006. SPARQL Query Language for RDF http://www.w3.org/TR/rdf-sparql-query/.

World Wide Web Consortium (W3C), 2006. XQuery 1.0: An XML Query Language http://www.w3.org/TR/xquery/.

No comments: