How to get Zemanta powered Related Posts on WordPress.com

Are you a WordPress.com user wondering how to get related posts and articles from around the world functionality back now that WordPress suddenly decided to turn Zemanta’s integrated service off?

It’s quite easy, actually. Zemanta has a browser extension that works on WordPress.com and/or on your self-hosted blog. All you have to do is to install it, register for an account and start using it.

 

Virtuoso and LODRefine – more vicious than virtuous pair (part 2)

First…

there was a big black hole (BBH). And then it got bigger. Seriously. At this point in my life I realized that more I learn more is there to learn.

Failure is success if we live to learn from it.
(Malcolm Forbes and me)

Second…

Chewing through the virtuoso documentation made me realize that using /sparql endpoint for updating graphs (i.e. inserting triples into it) is not  a particularly good idea. One has to have some security, right? I said to the SPARQL user that it has the right to return error on any non-SELECT demand. I found out that there are three possibilities of securing your virtuoso endpoint:

There is good news…

Implementing  digest authentication into LODRefine was easy peasy (after I found the right library that is). I used Apache HTTP Client for this:


...
import org.apache.http.client.params.AuthPolicy;
import org.apache.http.NameValuePair;
import org.apache.http.auth.AuthScope;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.auth.UsernamePasswordCredentials;
...
...
...
  DefaultHttpClient client = new DefaultHttpClient();
  client.getCredentialsProvider().setCredentials(
	new AuthScope(endpoint.getHost(),endpoint.getPort()),
		      new UsernamePasswordCredentials(properties.get("username"), properties.get("password"))
		     );
  client.getParams().setParameter(AuthPNames.PROXY_AUTH_PREF, AuthPolicy.DIGEST);
  HttpPost httpPost = new HttpPost(endpoint.toURI());  try {
        List  nvps = new ArrayList ();
        nvps.add(new BasicNameValuePair("query", query));
        httpPost.setEntity(new UrlEncodedFormEntity(nvps));
        HttpResponse response = client.execute(httpPost);
        ...
      }
  ...
  ...

Nice and simple, if only the virtuoso endpoint you are trying to use supports this kind of authentication – if it does, it is accessible at /sparql-auth. I had to enable it on my local virtuoso instance. I also created a new user with SPARQL UPDATE rights. For more details see Virtuoso guide.

… and there is oh-not-so-good news …

In LOD2 we decided to use WebID authentication. This will definitely not be a walk in the park. You’ll have to wait for part 3 to see, whether I survived this dangerous endeavor.

Avoiding danger is no safer in the long run than outright exposure. The fearful are caught as often as the bold. Especially if they don’t run fast enough.
(Hellen Keller and me)

Virtuoso and LODRefine – viciously virtuous pair (part 1)

Disclaimer

I’m assuming that you :

  • are familiar with the notion of linked data (triples, SPARQL endpoints)
  • have heard about Virtuoso Universal Server,
  • want to give LODRefine a chance and,
  • don’t mind waiting for part 2 of this post.

The beginning…

They: “We want to upload triples directly from LODRefine to Virtuoso.
Me: “A wha?

… and the (almost) joke

A Virtuoso, SPARQL, and SPARUL enter the bar.
Bartender: “Hey guys, what can I get you?
They: “Select ?drink where {?drink <http://www.w3.org/1999/02/22-rdf-syntax-ns#label “Martini (Coctail)” }
Bartender (puzzled): “Gesundheit!? 

But seriously!

If you are familiar with LODRefine, then you know you can transform your data to triples using RDF extension (thanks to Fadi Richard from DERI!). Now what? You can export triples to file and then upload this file to some triple store.

Imagine you could insert triples directly from LODRefine. Guess what? This is exactly what I’m working on right now. Yay me! :)

I started with installing Virtuoso Open-Source Edition (OS X 10.7) and (fortunately) had no problems building, configuring and installing it according to the instructions. After adding SPARQL_UPDATE rights to the SPARQL user I was ready to insert some triples. And I did… insert some triples via /sparql endpoint. Lovely!

At this point (not endpoint) I learned about SPARUL (could be a name of a villain in the next Batman movie) and figured out how to delete all named graphs containing a specific substring in their name. Why I wanted to do this? Because I installed demo, sparql demo and what-not … and shortly after realized I would be much happier person without all these graphs in my virtuoso instance and that I don’t want to click on each and every one of them to remove them.

[In Vonnegut’s  Breakfast of Champions style…]

This is how you can remove all the graphs containing specific substring in IRI:


DELETE {GRAPH ?g {?s ?p ?o}} 
WHERE {
   GRAPH ?g {?s ?p ?o}  
   FILTER( contains(str(?g), "your substring here"))
}

Level 1: install instance of Virtuoso locally finished.

Next level: add “Upload data to triplestore” to LODRefine…

 

 

Enhanced by Zemanta

When CubeViz meets statistical data

It is time for the next free webinar in the LOD2 webinar series: CubeViz – a facetted browser for statistical data. The webinar starts on May 28, 2013 at 4:00 PM CEST.

In this one hour webinar Michael Martin (University of Leipzig, AKSW) will present CubeViz – a facetted browser for statistical data utilizing the RDF Data Cube vocabulary which is the state-of-the-art in representing statistical data in RDF. Based on the vocabulary and the encoded Data Cube, CubeViz is generating a facetted browsing widget that can be used to filter interactively observations to be visualized in charts. Who doesn’t like charts instead of raw (linked) data? :)

 

So… If you are interested in Linked (Open) Data principles and mechanisms, LOD tools & services and concrete use cases that can be realised using LOD then join us in the free LOD2 webinar series!

Do not forget to register here: https://www4.gotomeeting.com/register/687215863

Enhanced by Zemanta

European Data Forum 2013 – your data, our data, Big Data!

This year April will start Big… big as in Big Data, especially in Dublin, Ireland. LOD2 is one of the main organizers of a special event: on April 09-10,2013 Dublin hosts European Data Forum – EDF2013, an annual meeting place for industry, researchers, policy makers, and community initiatives, where they will be able to discuss the challenges and opportunities of (Big) Data in Europe.

‘The amount of data in our world has been exploding, and analysing large datasets — so-called big data — will become a key basis of competition, underpinning new waves of productivity growth, innovation, and consumer surplus.’ (McKinsey Global Institute, May 2011)

These challenges and opportunities around big data management, the single steps of the data value chain, technological innovations and innovative business models, as well as the legal framework for a sustainable European data economy will be discussed at EDF 2013.

Prestigious hardcore keynote speakers from Statoil, Telefonica Digital and Erricson will talk about Linked Data, Open Data, Big Data — you name it –, a moderated CIO discussion panel with selected experts will take place and comprehensive exhibition area is open to everyone willing to share and showcase their advances in solving real-world Big Data challenges. Check the call for Exhibits.

Registration and participation is free of charge. There is also an opportunity for financial travel support (mainly for SMEs and NGO/NPO) – please see the respective EDF2013 website for further details.

 

European Data Innovator Award

If you are an outstanding enterprise or individual

“… who have shown extraordinary vision and execution in the field of linked enterprise data management for their use of linked (open) data to start more efficient data management”

you might get the European Data Innovator Award, which was made possible by eccenca, a spin-off of Brox IT Solutions and AKSW Research group from University of Leipzig. More details here.

Are you the one?

 

Important facts, bits and dates

Location: Croke Park Conference Centre in Dublin, Ireland
Date: April 9 to 10, 2013
More Information: http://2013.data-forum.eu/

Registration 

Registration (EDF2013 is free of charge): http://2013.data-forum.eu/news/european-data-forum-2013-call-contribution/registration

If you would like to attend better register today (i.e. ASAP). Space at EDF 2013 is limited to 300 participants and more than 50% of tickets are already booked.

 

Contact, share, communicate

Twitter: https://twitter.com/EUDataForum , hashtag: #EDF2013

Press Area: http://2013.data-forum.eu/about/press-area

LinkedIn Group: http://www.linkedin.com/groups/European-Data-Forum-4356346
Get in touch: edf2013@data-forum.eu

 

Organizers

The European Data Forum 2013 is a joint activity of the EC projects:

The EDF2013 is supported by the European Commission as well as by the Digital Repository of Ireland (http://www.dri.ie/), STI International (http://www.sti2.org/) and DERI, NUI Galway (http://www.deri.ie/).  EDF2013 is an associated event of the Irish Presidency of the Council of the EU (http://www.eu2013.ie/).

 

GitHub Pull Request frenzy or… How to reference an existing issue almost without breaking a sweat

I’m on a rampage for the last two days… sort of. Why? I’m preparing for a free webinar on using LOD-enabled Open Refine (LODRefine) and I had to fix some issues (bugs) due to migration of LODGrefine from Google Refine to OpenRefine… OpenRefine used to be called Google Refine, endorsed by Google and hosted on Google Code… but it is not anymore. Now it’s on GitHub. Yay!

Image representing GitHub as depicted in Crunc...

Image via CrunchBase

svn is dead, long live git?

On GitHub you can fork a repo with a single click. It’s like magic. But… with fork comes great responsibility… if you’re into forking and contributing and committing and pushing that is.

Another thing you can do with one click is to create a pull request. Usually you want to do this when you implemented a super duper feature or fixed a bug.  Unfortunately, what you can’t do with one click is to link your pull request with an existing issue created on the upstream repo (i.e. repo you forked from), especially not if you’re working on a branch of your fork. The thing is: each time you create a pull request from GitHub website with a click, a new issue is created. Nasty. Of course I googled for solutions. People suggested using hub. I tried it, really, I did!, but referencing issue number in pull-request from the branch just didn’t work. All I got was this lousy

 Error creating pull request: Unprocessable Entity (HTTP 422)

I tried referencing issue with its number, with full URL, using base (-b) and head (-h) parameter… nothing worked.

Wild guess: To be honest, what I didn’t try was merging my branch into forked master beforehand and then create the pull request with issue number.  Will try next time I fix something, might take a while. :)

Long story short

I had to create pull-requests to  GitHub repositories I’ve forked for some existing issues. I ended up creating pull requests with clicking and creating new issues. At least I figured out how to automatically reference an existing issue (from the new one).

The easiest way was to reference the issue in a commit message, e.g.

git commit -m "Fixed #xxx"

where xxx is issue number, obviously.

Words of wisdom after the git-battle: At the end I had  two references to the issue, so be careful what you do in your branches before you push them to remote repository… It can get ugly! :) I just spent two hours figuring out how to remove one of the commits from remote repository history so it wouldn’t show up as a second reference to the issue, but no luck, just time lost.

Another wild guess: if you add some additional text to the commit message instead of just “Fixed #xxx”, new issue is created. Will definitely test it next time. Or you do it and tell me. Please… :)

 

Enhanced by Zemanta

2nd release of LOD2 technology stack

LOD2 project consortium announced new LOD2 technology stack release – a set of free tools, services and activities  serving one common purpose: creating knowledge out of interlinked data.

Linked Open Data Lifecycle

Linked Open Data Lifecycle (Photo credit: haschek)

The project coordinator Dr. Sören Auer states that “in a world of an emerging new data economy innovative and scalable mechanisms and technologies are needed to solve the arising data management problems – we see that lots of organisations are seeking for state-of-the-art data publishing and integration technologies along the whole data value chain to be able to efficiently use this growing amount of data. The efficient handling of data – available inside of organisations as well as on the internet – becomes more and more important to reach competitive advantage.

LOD2 tool stack at your service: supporting every step in the Linked Open Data Lifecycle.

This 2nd release of the stack contains updates to the components:

  • Ontowiki,
  • Silk,
  • SigmaEE and
  • Virtuoso,

but also some new components:

  • SPARQLED (by DERI),
  • LOD enabled OpenRefine (by Zemanta),
  • extended version of Silk (University of Mannheim) with link suggestion management from LATC (by DERI),
  • rdfAuthor library (by ULEI) and
  • SPARQLPROXY (by ULEI)

LOD2 stack is organized as a Debian package repository and can be relatively easy installed on any Debian-based system (yes, Ubuntu is one of them) or you can try it in an online demo or experiment with it on a virtual machine (you’ll need free VMware player).  In case you need some help with installation, you can also check How-to document with more details and instructions.

Hold on, there’s more.

Next webinar is all about this 2nd release of the LOD2 Stack on December 12, 2012 at 4pm CET. More information and registration are available here.
Join us and the may the LOD force will be with you.

Enhanced by Zemanta

Information and publishing industry get ready for Linked Open Data!

I’m glad to announce another free one-hour  LOD2webinar, this time it’s about “Linked Open Data in information and publishing industry”. Webinar will be presented by Wolters Kluwer Deutschland GmbH on November 19, 2012, at 4pm CET.

One of the main problems in publishing industry is information overload on one hand and scarce resources giving meaning to information on the other hand. Wolters Kluwer is a LOD2 partner from industry and they provide an use case how LOD and Semantic Web may/can solve this problem for their business. Presentation will guide you through different parts (tools) of the LOD2 stack, which are being used in their use case and expose the challenges that had to be addressed in the last two years. The topics covered are relevant for any industry that deals with a lot of data and documents, not only publishing.

What: LOD2 in information and publishing industry
Who: LOD2 project, presenter: Wolters Kluwer Deutschland GmbH
When: November 19, 2012, 04.00pm – 05.00pm CET
Information & Registration: https://www2.gotomeeting.com/register/853703530

The LOD2 team is looking forward to meeting you at the webinar!

Enhanced by Zemanta

Want to import audio markers in After Affects? Let me ease your pain.

Problem: I have a composition in Adobe After Effects (AE) and audio track with people speaking, which have to be synced. Well, what I don’t have is an easy way to import markers into Adobe After Effects (AE) to make syncing easier. Dealing with audio in AE can be painful, especially if you have to manually create markers during RAM preview – the only option to actually hear the sound during preview!… You know the pain, don’t you?

Surprise: After extensive search on the web I found … nothing useful. I was surprised, too. It was time for me to dive into  scripting.

Solution: Good news, days of hitting keyboard for adding markers during RAM preview are over! All we need is a tiny script that reads tab separated file with timings and (marker) labels from Audacity and adds markers to a layer in a composition in AE. As simple as that.

Note: I’m assuming you’re familiar with AE workflow and basic concepts of animating in AE… and some basic scripting. :) If you’re not, try reading a tutorial or two on these topics first.

Follow me through few steps to your audio-marker freedom:

0. Download and install Audacity. Audacity is beautiful “free, open source, cross-platform software for recording and editing sounds”. It is  amazing alternative to expensive pieces of software for audio editing. If you already have it, you’re audio-smart! :)

1. Import your audio track into Audacity project and add new Label track (Tracks>Add new>Label Track). Click on label track at desired location and add label(s) (markers) at selected position(s) either via menu Tracks>Add Label at Selection or keyboard shortcut (OS-dependent). Try it, it is quite simple.You can also define text for your label. You should get something like this (e.g. three labels added):

Btw. Moving back and forth on a timeline in Audacity is… beautifully simple and fast.

2. When you have your labels all set, export them into text file using menu File>Export Labels. You can check the contents of the file in any text editor. These are the lines with tab separated values in my case (bold values are the ones we need in AE):

0.534059 0.534059 intro
1.428027 1.428027 Joe laughs
2.020136 2.020136 Jane singing

3. Now you are ready for the big guns. Open your composition in AE. Beware: the script will add markers to the first layer in open (active) composition. Make sure you have a layer there. :)

4. Go to File>Scripts>Open Script Editor, create new JavaScript file and copy/paste following code:


var aFile = File.openDialog ( 'Select text file with timings:', '*.txt', false ) ;
var timings = loadTimings(aFile);

//list of compositions
var compList = app.project.items;

if(compList.length > 0) {

  //1. take the first composition OR
  //var currentComposition = compList[1];

  //2. take currently active composition
  var currentComp = app.project.activeItem;

  if(currentComp.layers.length > 0) {

    //take the first layer of the active composition
    var markerLayer = currentComp.layer(1)

    for (var i = 0; i < timings.length; i++) {            
      marker = timings[i].split('t');              
      var marker_label = "";              
      if(marker.length > 2) {
        marker_label = marker[2];
      }
      markerLayer.property("Marker").setValueAtTime(marker[0], new MarkerValue(marker_label))
    } 
  }
  else {
    alert("No layer in this composition. Create a layer first. It can be a Null Object layer.");
  }
}
else {
    alert("No composition in the project. Create a composition first. Its duration should be equal or longer than the end timestamp of the last marker.");
  }

//loads markers from Audacity text files with labels
function loadTimings(filePath) {

  var timings = new Array ( ) ;

  var fileObj = File(filePath);
    if ( ! fileObj.exists ) {
  return timings ;
  }

  try {
    fileObj.open('r');

    while(! fileObj.eof) {
    var currentLine = fileObj.readln();
    timings.push(currentLine);
    }
    fileObj.close();
  }
  catch (errMain) {
  }
  return timings;
}

P.S: Copy-paste might be the fastest way in comparison to saving file to god-knows-which-location-on-disk-depending-on-os-you-have. Just save your file where it suits you.

5. Run it either directly from ExtendScript Toolkit editor or save it and run it from AE via File>Scripts>Run Script from File or …

6. Enjoy the beauty of added markers in your composition. :) Don’t forget to add audio into your composition.

 

UPDATE [28 May 2013]:  Script has changed. Now it checks whether you have a composition (and layer) in the project. I also prepared a sample AE project, file with labels and the script in text format (download *.zip). Unpack the archive, open the project, copy the script in Script Editor and play with it using the label file provided. It works for AE CS5.

Enhanced by Zemanta

The day I got smart…

I still remember the day I wanted to throw my old mobile phone in the river. It’s funny story now, but it was not so funny then. It was really early in the morning, I was running near the river, listening to music on my phone, and enjoying the scenery. The sun was about to rise and I saw two beautiful swans dancing on the river. I stopped to take a picture, but the phone froze. No music, no picture, no anything. It took me few minutes to make it work again, but in the meanwhile swans flew away. I was so cross with the phone that I wanted to throw it into water. This ‘freezing accident’ was just a tip of an iceberg. My old phone had Symbian on it, but a lot of people switched to smart phones already. There were tons of cool applications for smarties, but almost none for Symbian. I really wanted to finally use this new Foursquare app!

Of course I didn’t throw the old one in the river, I got smart instead. Shiny black display greeted me on a hot summer day. My precious. I named it SparkPhone.

To be honest – I had good times with my old phone, too. Photos are worth a gazillion words:

Smart phone is not the only gadget I own and use regularly. Please welcome to the family one Kindle, two iPods, one powerful Polar RS300X ( sports watch on steroids, one Olympus dictaphone and one notebook. Which one is the favorite one?

Well, when I think of my gadgets I must say that mobile phone has always been my best friend and my worst enemy: it is the instrument for capturing the beauty of spontaneous moments (check the photos below), it was the weapon of love for announcing the (foreseen but premature) break-up, it connects me to the world when I need it, it captures my creative flashes, stores my forget-me-not-notes…

… oh, yes, and I can make/take phone calls with it.

Every friendship is booby trapped and this one is no exception. Gadgets, especially the new ones, have the tendency to enslave their owners. I’m aware of this and that’s why I don’t use it 24/7. I could go on and on about this, but I have to go now and play with my SparkPhone.