in taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/combine/CombineManifest.java [197:238]
private static String nameForAgent(Resource agentResource) {
logger.fine("Finding name of " + agentResource);
String queryStr = sparqlPrefixes
+ "SELECT ?name WHERE { \n"
+ " { ?agent foaf:name ?name } \n"
+ " UNION \n"
+ " { ?agent vcard:fn ?name } \n"
+ " UNION \n"
+ " { ?agent vcard:FN ?name } \n"
+ // legacy
" UNION \n"
+ " { ?agent rdfs:label ?name } \n"
+ " UNION \n"
+ " { \n"
+ " { ?agent vcard:n ?n } UNION { ?agent vcard:hasName ?n } \n"
+ " ?n vcard:family-name ?family ; \n"
+ " vcard:given-name ?given . \n"
+ " BIND(CONCAT(?given, \" \", ?family) AS ?name) \n"
+ " } \n" + " UNION \n" + " { "
+ " ?agent foaf:givenName ?given ; \n"
+ " foaf:familyName ?family \n"
+ " BIND(CONCAT(?given, \" \", ?family) AS ?name) \n"
+ " } \n" + " UNION \n" + " { "
+ " ?agent foaf:firstName ?given ; \n"
+ " foaf:surname ?family \n"
+ " BIND(CONCAT(?given, \" \", ?family) AS ?name) \n"
+ " } \n" + " } \n";
logger.finer(QueryFactory.create(queryStr).toString());
QueryExecution qexec = QueryExecutionFactory.create(queryStr,
agentResource.getModel());
QuerySolutionMap binding = new QuerySolutionMap();
binding.add("agent", agentResource);
qexec.setInitialBinding(binding);
ResultSet select = qexec.execSelect();
if (select.hasNext()) {
String name = select.next().getLiteral("name").getString();
logger.fine(name);
return name;
}
logger.fine("(null)");
return null;
}