trees

Onward, Christian Pilgrims

So since December 2011 I’ve been working as a Developer (PHP+MySQL+XHTML+jQuery + a whole load of other stuff!) for a Bristol-based company called Helastel. It has been my full-time employment since, and I’m finding it quite challenging but quite rewarding.

In the background I’ve kept my self-employment going – I’ve been writing some articles for a bit of pocket money, and have also been volunteering my services as a web developer/master to a certain political party, and some other groups.

But my personal and career development has far from reached its summit, there is still a long way to go, in fact, it is definitely a life-long journey. There is so much I want to learn, so much I want to experience, so much more skill to attain and wisdom to seek.

“Know Thyself” is a teaching which I try to get to understand. I want to know myself, I struggle with it at times. The question I ask myself is not “why am I here and what is my purpose?”, but “what are my strengths and how can it change other peoples lives?”

“Onward, Christian Pilgrims” is a different song, but quite similar to “Onward, Christian Soldiers” which I believe is called St Gertrude. The term “Pilgrim” speaks to me a lot louder and clearer than the word “Soldier”, and in general I prefer the “Onward, Christian Pilgrims” hymn. I am a “seeker” – I seek the wisdom that can be found in humanity and in nature, I believe that it can guide us in life. This seeking is a pilgrimage.

On a pilgrimage we take a good direction and sometimes take a wrong direction, it all depends on our orientation skills at the time. I’ve made some good career and life decisions, but I’ve also made some bad ones. We learn from the bad ones in order to not make them again, and we rejoice in the good decisions. The road is tough, and long – but the goal drives us, and we can rejoice in that goal.

These aren’t things which are Christian specific – in fact, these are things which are applicable to everyone – including atheists, agnostics and people of all faiths and cultures. Life is interconnected and intermingled – careers/business, education, lifestyle choices, lifestyle non-choices, cultures, government, religion/spirituality/belief/disbelief. Everything influences our decisions.

Some interesting thoughts for a Wednesday morning. I would be interested to see any comments people may have on this subject.

Daniel

Two Linked Data Seminars

To all my readers,

Many of you know that I’ve been working with/for for a while now as a Consultant in the realm of and particularly in the UK and Europe. Well, I would like to announce the launch of two that I will be running for OpenLink Software which will be running in late November 2011 in London (England):

  • Linked Data – Commercial Perspective for Strategic Decision Makers and Executives” is an exciting new seminar for Strategic Decision Makers, Executives, Investors, Directors, Management, CxOs etc. It will cover, in non-technical fashion, how Linked Data is simple, its rich and mature history, its business opportunities, its business challenges and its societal implications.
    • Visit http://www.eventbrite.com/event/2069248177 to register your interest in the “Linked Data – Commercial Perspective for Strategic Decision Makers and Executives” seminar. Late November 2011 in London.
  • Linked Data – Commercial Perspective for Technologists” is also an exciting seminar, which is specifically tailored for technologists of any level (Technical Directors, Senior or Junior Programmers, Analysts, Knowledge Engineers, Knowledge Managers, Information Architects, Web Developers). It will be introductory in style, and will cover the technical areas of the rich historic tapestry of Linked Data, it will cover some of the more technical issues that Linked Data solves and it also covers the simplicity of implementing Linked Data.

If you are interested in attending then please do register your interest on the eventbrite pages listed above. Once you have registered interest you will receive updates about the date, time, location and the cost of the seminars. Please note that as commercially-orientated seminars, these seminars will cost – registering interest however does not cost and will not commit you to purchasing a standard ticket.

If you would like to get in touch with me directly about these seminars, or any of my work with OpenLink Software, then please do so by email: dlewis@openlinksw.com

I look forward to hearing your thoughts on the course, and I hope to see some of you at my seminars in the future.

Daniel Lewis

  • Professional Services Consultant for OpenLink Software

Facebook, the home of profiles for People, Comments, Groups, Pages, Games and Interests. It has traditionally been a very closed wall system with only the ability to link internally (i.e. Many Facebook People Profiles link to a Facebook Group Profile), or link outward (i.e. this Person gave this comment about this website).

However, this is slowly changing, we now see:

  • “Facebook Like” buttons on websites around the web, allowing a Facebook user to easily say that they like a page.
  • “Facebook Comments” on websites rather than being only within Facebook itself. For instance, the commenting system on Techcrunch.com is provided by the Facebook Comments system.
  • The Social Graph API allowing developers to use the proprietary schema built using the JSON language. This effectively, using a few mappings, allows people to link into the Facebook system – and potentially grab the data (for data portability, or query purposes)

You see that all this Facebook data is starting to whirl around the world-wide-web in an increasingly “open” fashion. So we should start using it for our own good, and not just for the good of the Facebook Corporatation.

So how can we do this? The first way is to see what you can do with the new RDF/Turtle API interface that Facebook has developed. If you have curl installed then you’ll be able to do this:

curl -L -H ‘Accept: text/turtle’ graph.facebook.com/danieljohnlewis

Which returns the results:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix api: <tag:graph.facebook.com,2011:/> .
@prefix og: <http://ogp.me/ns#> .
@prefix fb: <http://ogp.me/ns/fb#> .
@prefix : <http://graph.facebook.com/schema/~/> .
@prefix user: <http://graph.facebook.com/schema/user#> .
</277003772#>
user:id "277003772" ;
user:name "Daniel Lewis" ;
user:first_name "Daniel" ;
user:last_name "Lewis" ;
user:link <http://www.facebook.com/danieljohnlewis> ;
user:username "danieljohnlewis" ;
user:gender "male" ;
user:locale "en_GB" .

There are of course other things you can do and “grab” once you’ve used authentication etc. I should also point out that neither the RDF/Turtle format nor the RDF framework is not actually required for “Linked Data”, it is only really the use of URIs/IRIs as dereference-able object identifiers.

However, this is all very developer centric, and wouldn’t make much sense to the average user. So why not plug the Linked Data from Facebook into a Data Exploration engine such as the Virtuoso Description Page view, see my version here:
http://linkeddata.uriburner.com/about/html/http/www.facebook.com/danieljohnlewis

For more information about exploring a Facebook Person Profile using Virtuoso and OpenLink Data Explorer see the documentation: http://ode.openlinksw.com/FacebookPersonProfile.html

In conclusion Facebook, which traditionally has been a data silo is becoming a linkable data set. This is a good thing, granted Facebook does still have many rough edges (particularly regarding privacy/security issues) but hopefully we will see more of a progression into a truly Distributed/Decentralised Data-orientated Web. Facebooks progression into “opening up”, should be a call to many other data-silo/walled-garden type data services to better Facebook by becoming truly user-friendly systems, by opening up their data which is rightfully owned by their users.

[UPDATE - Highly recommend you read the following]

On 30th September my good friend Kingsley Idehen summarised “Facebook and Linked Data” in a wonderfully understandable Google+ Post (available here: https://plus.google.com/112399767740508618350/posts/6cqa1Sxk5KV (last accessed: 13th October 2011 at about 3:30pm BST)). Kingsley highlights how Facebook has given the Linked Data Web a bit of an evolutionary bump, using its Graph URIs and accessibility functions.

I would very highly recommend reading through Kingsleys post, as it seems to make a lot more sense than my own quickly made “quick post” from earlier on.

[/UPDATE]

A brief update

It has been a while since I last made a useful update to my Vanir Systems Blog… so I thought that I should let you know what has been going on.

In my business life I’ve been incredibly busy working with OpenLink Software, where I am a Professional Services Consultant. I worked for OpenLink Software as a Technology Evangelist back in 2007-2008, I like the company so much that I accepted an offer to work with them again. So here I am as a PS Consultant!

Aside from OpenLink work (which takes up 100% of my full-time work time at the moment), in my spare time I’ve been doing a little bit of website design & development for the Order of The Grail, and some article writing for IBM developerWorks.

I’ve also been getting a lot more involved with my community – taking more of an active role in Church/Religion, Local Politics (North Somerset Liberal Democrats – Wraxall & Long Ashton Ward), the local Transitions Network Group (Transitions Long Ashton) and a new Local Energy Co-operative (ENECO). My “journey” as a “Journeyman of the Worshipful Company of Information Technologists” is going well, and of course I have a few other secular interests which are certainly progressing nicely. This all happens alongside me spending some lovely time with my wonderful wife (Beki) and two cats (Lucy and Ishtar).

It really is a very busy time for me at the moment, and I love it!

:-)

So thats a summary for you! Now I’ve got to get back to improving myself and helping society as best I can.

Daniel

p.s. feel free to get in touch with me:

  • About OpenLink Software at my OpenLink Software email address which is: dlewis [at] openlinksw [dot] com
  • About Vanir Systems work at my Vanir Systems email address: dlewis [at] vanirsystems [dot] com
  • About personal stuff at my personal GMail/GTalk address: danieljohnlewis [at] gmail [dot] com

Just to let all my friends, colleagues and clients know that I shall be away from my desk and out of my office:

  • From: Thursday 25th August 2011
  • Until: Tuesday 30th August 2011

During this time I shan’t be picking up any work-based emails. This is because I’ll be in the middle of Cheltenham Racecourse enjoying Greenbelt Festival 2011 – which is an annual Festival with Music, Christian-Worship, Christian-Talks, Economic Talks, Ecological Talks and various other bits and pieces – it is a very Liberal and very Progressive festival (in comparison to many other Christian Festivals out there)

Many of you know that I find August one of the most stressful times of the year, and Greenbelt is my form of “getting away from it all”… before busy September steps in.

I’ll respond to any emails I get once I am back. I apologise for any inconvenience this may cause.

Many many thanks,

Daniel

Quick Post: Whirling Databases

For the true technologist there is a clear progression from Relational Databases to Objective Databases (OO or ORM) to Graph Databases (including Linked Data Triple/Quad Stores). It is possible to “automatically devolve” (for want of a better phrase) newer data structures into the old data structures… but that’s not what I am trying to get to today.

I’m coming across many technologists who are forming cliques, and their language is becoming restricted to their cliques. This is worrying, because it forms islands which don’t trade (to use business terminology). Not only this, but it also restricts access to the average person in the street, the technologies and tools that these islands create can become more and more distant from their potential users.

The idea of “Whirling Databases” is not to see “Databases” in terms of a specific data structure or data management system, but to see databases as a generic repository for information, capable of inputting and outputting data in different formats and frameworks. In a Linked Data system, data needs to “whirl” around the web using “links” as their travelling routes. We should work together, collaboratively and collectively to achieve this.

As some of you know, I’ve recently been working quite closely with OpenLink Software to help them help others learn about Linked Data. Linked Data, as a generic term, is an incredibly powerful tool – and a tool that should never get bogged down in frameworks (such as RDF) or formats (such as RDF/XML), it should be applicable to all frameworks and formats capable of providing outbound links, and capable of receiving inbound links. I’ve been working with Virtuoso Universal Server solidly for over a year now (not just with OpenLink Software, but with other businesses too), and I truly believe that allows for this travelling via “links” in Linked Data for a variety of frameworks and formats – this is powerful stuff!

Fight Fire with Flower

Many people, homes, businesses (small and large) and society-in-general have been damaged (the “damage” is the “effect”), from what are being called “riots” around the UK (the “riots” are the “cause”). (An example article of the riots and the damage is here). I am very sad about the “effect”, and I feel that the “cause” should be condemned and the perpetrators placed justly through our (UK+EU) law system.

I feel that we should separate cause and effect, and my intention in this blog post is to comment on the cause. Therefore please do not confuse what I may say about the cause with what I feel for the effected.

I believe as part of our condemnation we should ridicule what they do, now ridicule is probably the wrong word and maybe I don’t mean it quite as literally as it may sound. These criminals are ‘silly’ for being so violent, for stealing things from shops, from setting things on fire etc etc. At the same time I do feel that we should not “fight fire with fire”, but “fight fire with flower”. Yes, I am saying that the government should use “Flower Power” (I do mean “Flower” and not “Flour”) – it would be fantastic if our government used flower cannons instead of water cannons, it would be a fantastic turn around from the days when hippies used flower power to fight the weapons obsessed government. Imagine that, the government using flower-power to fight weapons-obsessed hooligans. It would be awesome! (also remember this photo)

To sum up, here is how I feel at the moment:

  • Let’s actively condemn violence and crime, and put criminals through the law and justice system.
  • Let’s work together (collectively, collaboratively and co-operatively) to improve society for all.
  • Let’s work together as a community and as individuals for Freedom, Equality and Community.
  • Let’s separate cause and effect. When effect is negative we should condemn the cause, and learn from it.
  • We should feel for those who suffer.
  • We should fight (as peacefully as possible, and with no violence and no criminal activity) those who cause suffering. By this I mean “peaceful retaliation,” in respect to “rioting”.
  • The “riots” are being over-politicalised, they have nothing to do with politics. It is simply that some people do not trust the police and/or justice system, and some people take the opportunities to steal.

p.s. be careful what you buy from ebay and other markets, you may be buying stuff that has been stolen during the riots! (particularly electronics and sportswear)

As already said, I hope that you don’t misunderstand what I am trying to say, and I certainly don’t mean to offend those who have suffered from these “riots”.

Many thanks,
Daniel

Disclaimer:  I am a pacifist, therefore when I say that we should “fight”, that does not mean that we should do so using violence, war, terrorism, or using any other criminal activity. I am also a great believer in universal Human Rights, so I feel that “fighting” and “justice” should always take into consideration our rights in society. I do not speak for any particular political party, nor do I speak for any group that I may be involved with, but I do speak from my own thoughts and feelings at the present time (and so these may change in the future). I am also not a trained politician, nor am I a trained journalist, nor a trained public servant. I am simply an observer, that reads and watches the news, and has an opinion.

Quick Snippet: DBPedia Categories Example

Just a quick example of a category-based search on DBPedia. It finds all “Latin Words and Phrases” on DBpedia, the results are the DBPedia URIs, the Labels and the Wikipedia URIs.

SELECT DISTINCT ?uri, ?label, ?WikipediaURI
WHERE {
    ?uri dcterms:subject category:Latin_words_and_phrases ;
        rdfs:label ?label ;
        foaf:page ?WikipediaURI .
    FILTER (lang(?label) = "en")
}
ORDER BY ?label

To make it work feel free to plug it into the DBPedia SPARQL endpoint.

Hopefully that’s nice and easy to understand, its nothing complicated at all. Enjoy! Feel free to comment.

Ciao BCS

A couple of months ago I wrote about “Professional Memberships“, and how I was considering leaving the BCS (British Computing Society). Well, I’ve got a few months left, and I have decided to definitely not renew my membership.

The 7 reasons for my leaving:

  1. It costs quite a bit of money, which in this current economic period isn’t great. Granted its not as much as some societies, but there are more reasons.
  2. The only thing that I really “get out” of my membership is the use of the “MBCS” letters after my name. Granted this does mean that other people can understand that I am at a certain level of professionalism, but I can be at that level of professionalism without the letters and without the membership.
  3. The BCS is far far too business orientated, its audience is primarily involved with the running of computing businesses. Granted it does have some technology based articles, and many of its interest-groups are academic in nature, but it just doesn’t fit with my niche.
  4. The BCS has no events that I’m particularly interested in, and nothing really happens in Bristol / North Somerset. Granted that its probably one of those societies that you only get things out of it if you can put stuff in, but putting stuff in seems incredibly strenuous.
  5. What I was trying to find in the BCS, I have found in the WCIT. The WCIT is practical, it has a better framework for personal development, it is both business and technology focused, it has some rather interesting panels and it is easy to “put stuff in” and “take stuff out” – therefore I am pleased to be a WCIT Journeyman.
  6. There are events out there which are no-membership required, that are more interesting and more suited to my (technical and non-technical) interests.
  7. I can rejoin BCS in the future if I wish to.

Of course, my reasons for leaving are clear for the here and now, but I should say that I’m sure that the BCS is useful and interesting for many. I do believe that the reason for the existence of the BCS is pure, and I do hope that I don’t sway people to leave it, or put off people from joining it just because of my current dissatisfaction.

At this present time I’ll be focusing on my computing-society-related involvement with the WCIT, but I may explore other areas in the future.

Feel free to comment!

Note: This guide is part two of the previous blog post on Importing Linked Data into a Spreadsheet.

Introduction and Theory:

Say you don’t want your data in Google Spreadsheet, but would prefer it in Excel, OpenOffice, LibreOffice or some kind of standalone desktop application on your computer. There is still potential to work with dynamic Linked Data – via the powers of WebDAV (which is a technology allowing the establishment of an “online hard drive” over the protocols that power the world-wide-web).

A WebDAV URL is also a Data Source Name (aka an “address”), you see it is capable of being linked to as it is a URL – it is still Linked Data, and yet it can be treated as a store. This is the one of the many powers of the Linked Data Web.

Once the Method Part One is done there are two options for the tutorial, the first “Part 2″ is dealing with the data in LibreOffice (and I presume that the process is very similar in contemporary versions of OpenOffice), the second “Part 2″ is for dealing with the data in Excel (I’ve used version 2010 on Windows 7).

Prerequisites:

  • You will need a copy of Virtuoso on your machine up and running (the enterprise edition and the open source edition should both work). You must also have administrative access to it.
  • A new-ish version of LibreOffice, OpenOffice or Microsoft Excel
  • An operating system that can cope with WebDAV (which seems to be most of them these days – to varying degrees of success)

An Example Query:

Ideally this method is ideal for fast-paced data, the data that changes often – such as statistics or locations of crime etc. However, for now I’ve just used a simple lat-long search of those “areas” that touch my local area of “Long Ashton and Wraxall”.

SELECT DISTINCT ?TouchesAreaURI, ?TouchesName, ?TouchesAreaLat, ?TouchesAreaLong
WHERE {
<http://data.ordnancesurvey.co.uk/id/7000000000000770>  <http://data.ordnancesurvey.co.uk/ontology/spatialrelations/touches>  ?TouchesAreaURI .
GRAPH ?TouchesAreaURI {
?TouchesAreaURI <http://www.w3.org/2000/01/rdf-schema#label> ?TouchesName;
<http://www.w3.org/2003/01/geo/wgs84_pos#lat> ?TouchesAreaLat;
<http://www.w3.org/2003/01/geo/wgs84_pos#long> ?TouchesAreaLong
}
}

Method Part One: Generic

As mentioned in the prerequisites – you will need administrative access to Virtuoso in order to fully run through this tutorial. This is because we need to create folders which need to be attached to the SPARQL user in order for the /sparql endpoint to save to WebDAV.

  1. Administrative Setup:
    1. Login to Conductor
    2. Go to System Admin > User Accounts
    3. Click “Edit” next to the SPARQL user
    4. Change the following:
      • DAV Home Path: /DAV/home/QL/ (you could call the “QL” folder whatever you like – just remember what you’ve changed it to)
      • DAV Home Path “create”: Checked
      • Default Permissions: all checked
      • User Type: SQL/ODBC and WebDAV
    5. Click Save.
    6. Go to Web Application Server > Content Management > Repository
    7. Navigate the WebDAV to: DAV/home/QL (or whatever you named “QL”)
    8. Click the New Folder Icon (it looks like a folder with an orange splodge on the top-left)
    9. Make a new folder:
      • Name: saved-sparql-results (must not be different!)
      • Permissions: all checked
      • Folder Type: Dynamic Resources
    10. Click Create
  2. Query and Data Setup:
    1. Hit http://<server>:<port-usually-8890>/sparql
    2. Enter the SPARQL query (e.g. The Example Query above)
    3. Change the following:
      • Change to a grab everything type query – i.e. “Try to download all referenced resources (this may be very slow and inefficient)”. Or one of the other options – dependent on the locations, data and the query.
      • Format Results as: Spreadsheet (or CSV)
      • “Display the result and do not save” change this to “Save the result to the DAV and refresh it periodically with the specified name:”
      • Add a filename (with file extension). For example testspreadsheet.xls (or testspreadsheet.csv)
    4. Click “Run Query”
    5. You’ll know see a “Done” screen, with the URI of the result, this is a WebDAV accessible URL. Please take note of the URL of the “saved-sparql-results”, it should look a little like this: http://<server>:<port-usually-8890>DAV/home/QL/saved-sparql-results

Method Part Two A: For LibreOffice and OpenOffice users

You will need to do the following in order to connect to a WebDAV folder:

  1. Tools > Options > LibreOffice/OpenOffice > General
  2. and ensure that “Use LibreOffice/OpenOffice dialogue boxes” is turned on.

You will be linking dynamically from your spreadsheet to the resource on your WebDAV instance:

  1. Start a new spreadsheet, or load up a spreadsheet where you want the resource to go.
  2. Go to Insert > Link to External Data
  3. Click the “…” button
  4. Enter your “saved-sparql-results” URL (not including the filename itself!), and press enter
  5. You should now see your “saved-sparql-results” WebDAV directory. Select the file, and click insert. The program will then probably ask you for your dav login details (you may want to make the program remember the details), it may also ask you about the format of the file – just follow that through how you would normally when importing/opening a file. You may also have to select “HTML_all” if you chose the “Spreadsheet option” in the sparql interface.
  6. Check the “Update every” box, and change the time to a suitable time based on the data.
  7. Finally, press the “OK” button… and you’ll see your lovely Linked Data inside your spreadsheet. Then you’ll be able to do whatever you want to your data (e.g. create a graph, do some calculations etc etc) – and everything will update when the data is updated. Funky!

Method Part Two B: For Excel users

OK, so I’m not a native Windows user (I used Mac OS and Amiga OS in my childhood, before moving to Unix and Linux based operating systems in about 2001). What I have found is that Windows 7 and Excel go a little strange with WebDAV, they like certain configurations – so I’ll be showing you a reasonably bodgy way of doing this :-P

  1. Prerequisite: In step 2.c of Generic Method One – save the results as HTML, and make sure the file extension is also .html
  2. Open Excel (I’m using Excel 2010)
  3. Click on the Data menu
  4. Click “From Web”
  5. In the address bar enter your “saved-sparql-queries” URL, press enter – this will probably ask you to enter your dav username and password
  6. Click on your <filename>.html file – you should then see the HTML Table
  7. Press the Import button
  8. A dialogue will pop up asking about where you would like to place your data – for ease I use the default.
  9. You’ll see the data! The important thing to note is that this is Linked Data – however, it is not quite self-updating yet. In order to do that we need to set the connection properties… so…
  10. Select the imported data
  11. Click “properties” which is in the “Connections” subpanel of the “Data” menu
  12. Change the “Refresh Every”, and/or check the “Refresh data when opening the file”. Click ok.
  13. Self-updating Excel spreadsheets from Linked Data. Funky!

Documentation Resources

Software Resources

I hope that all works for me, and feel free to share any ideas or findings!