XLWrap state and feature requests

From Linked Data Camp

Jump to: navigation, search

Contents

[edit] People involved

  • Richard Cyganiak
  • Leigh Dodds
  • Andreas Langegger
  • Keith Alexander (via Skype)
  • Thomas Schandl

[edit] Monday

AndyL gave overview of XLWrap on first day, wrapped a spreadsheet together with Leigh Dodds detecting some required new features... Richard already sent a list of feature requests to AndyL before.

More details on XLWrap can be found at SourceForge, Slides are also available.

[edit] Tuesday

Started to add features such as:

  • Full N3 (incl. variables for dynamic properties and Formulae) instead of TriG (which is not a W3C standard)
  • xl:skipCondition, which allows to skip just one eval of the transformed template graph, but does not skip the whole transform stage
  • transform stage labels (e.g. for getting the current index of a repeat iteration)
  • variables
  • improved specification of templ graph + transforms: cascaded, which prevents repeatedly generated equal triples (will greatly improve performance, espeically when connecting to external resources during the execution, e.g. when getting URIs or tags from external services...)
  • function EXPLAND_NS(String s) for getting full URI for namespace prefix s
  • some small fixes

A future mapping might look like this:

[] a xl:Mapping;
	xl:workbook <file:asdf.csv>;
	xl:rowRepeat [
		xl:transformLabel "person-rows";
		xl:window "A2:K2"^^xl:Expr;
		xl:assign {
			?person = "URI('people/' & REPEAT_INDEX('person-rows'))";
		}
		xl:instantiate {
			?person a foaf:Person;
				foaf:name "B2"^^xl:Expr;
				foaf:mbox "URI('mailto:' & C2)"^^xl:Expr;
				.
		};
		xl:colRepeat [
			xl:window "D2";
			xl:repeat 3;
			xl:instantiate {
				?person ex:interest "D2"^^xl:Expr .
			}
		];
	];
	.

Feel free to add comments!

[edit] Further Feature Requests (add yours here!)

  • function NEAREST(startcell, stepExpr, condition) to find next value in a row/col/based on a pattern (suggested by Keith Alexander)
    • stepExpr would be something like: ("+"|"-") <NUMBER> ("col"|"row"|"sheet")
    • the condition a normal condition to stop and take the cell value from there
    • step expressions can be concatenated "+1col+1row" (=diagonal)
Personal tools