- From: Iker Huerga <iker.huerga@gmail.com>
- Date: Thu, 1 Dec 2011 10:09:24 -0500
- To: Joshua Shinavier <josh@fortytwo.net>
- Cc: Sebastian Schaffert <sebastian.schaffert@salzburgresearch.at>, Linking Open Data <public-lod@w3.org>, "semantic-web@w3.org >> semantic-web@w3.org" <semantic-web@w3.org>
- Message-ID: <CAJ=Mb+-TBmSBrcMVhbMf+oamNjTZ_428PmT9O5JvjbiAVihr_w@mail.gmail.com>
> > > Can you talk about your use cases in the > Linked Media Framework which led you to invent a YARPL (Yet Another > RDF Path Language) instead of using one of those existing languages? > +1 > How is LDPath more in line with the way Linked Data resources are > accessed? > > Best regards, > > Josh > > > [1] https://github.com/joshsh/ripple > [2] https://github.com/tinkerpop/gremlin/wiki > [3] https://github.com/joshsh/ripple/wiki/LinkedDataSail > > > P.S. as a quick comparison, here's the example from your wiki: > > @prefix foaf : <http://xmlns.com/foaf/0.1/> ; > @prefix geo : <http://www.w3.org/2003/01/geo/wgs84_pos#> ; > title = foaf:name | fn:concat(foaf:givename," ",foaf:surname) :: > xsd:string ; > summary = dc:description :: lmf:text ; > lng = foaf:based_near / geo:long :: xsd:double ; > lat = foaf:based_near / geo:lat :: xsd:double ; > interest = foaf:interest / (rdfs:label[@en] | rdfs:label[@none] | > <http://rdf.freebase.com/ns/type.object.name>[@en]) :: xsd:string; > friends = foaf:knows / (foaf:name | fn:concat(foaf:givename," > ",foaf:surname)) :: xsd:string; > contrycode = foaf:based_near / > <http://www.geonames.org/ontology#countryCode> :: xsd:string ; > type = rdf:type :: xsd:anyURI ; > > And here's almost exactly the same example in Ripple: > > @prefix foaf : <http://xmlns.com/foaf/0.1/> > @prefix geo : <http://www.w3.org/2003/01/geo/wgs84_pos#> > @list p title: (p foaf:name.) (p foaf:givenname. " " p > foaf:surname. concat.) both. apply. > @list summary: dc:description. > @list lng: foaf:based_near. geo:long. > @list lat: foaf:based_near. geo:lat. > @list interest: foaf:interest. rdfs:label > <http://rdf.freebase.com/ns/type.object.name> both. apply. > @list friends: foaf:knows. :title. > @list contrycode: foaf:based_near. > <http://www.geonames.org/ontology#countryCode>. > @list type: rdf:type. > > A couple of differences: 1) there's no filter on a null language tag > in Ripple, although you could filter on any non-null tag like "en". 2) > the Ripple version references the "title" path in the "friends" path > instead of repeating that logic. > > > > On Thu, Dec 1, 2011 at 7:22 AM, Sebastian Schaffert > <sebastian.schaffert@salzburgresearch.at> wrote: > > Dear all, > > > > I am proud to announce the availability of our path query language > LDPath as Open Source query language for Linked Data. For example, you > could select the names of all friends of a person using the following path > statement: > > > > foaf:knows / foaf:name :: xsd:string > > > > The full language is documented (more or less) at > http://code.google.com/p/ldpath/wiki/PathLanguage . > > > > You can download LDPath at the project website at: > > > > http://code.google.com/p/ldpath/ > > > > LDPath is a simple path-based query language similar to XPath or SPARQL > Property Paths that is particularly well-suited for querying and retrieving > resources from the Linked Data Cloud by following RDF links between > resources and servers. The LDPath project is a collection of generic > libraries that are independent of the underlying RDF implementation. > Currently, there are backends for Sesame, for RDF files, and for Linked > Data. You can easily implement your own backends by implementing a > straightforward interface (RDFBackend). > > > > LDPath can serve many different purposes. It can e.g. serve as > > * a simple query language for selecting nodes or values in your own > triple store programmatically from Java > > * a query language for transparently querying resources in the Linked > Data Cloud and following links between datasets > > * a foundation for templating languages to render results based on RDF > or Linked Data > > * a foundation for building a semantic search index (used e.g. in the > Linked Media Framework and in Apache Stanbol) > > * a query language for experimenting with the Linked Data Cloud > > > > LDPath is obviously not the only implementation of a (path-based) query > language for RDF or Linked Data. But we still thought it might be useful, > as it is easier than SPARQL for novice users or simple tasks, and it is > more in-line with the way resources in the Linked Data Cloud are accessed. > > > > LDPath has currently been integrated in our Linked Media Framework (as a > means to configure Semantic Search) and in the Apache Stanbol project (for > querying the cached data). > > > > If you want to try out the language, you can download one of the > standalone jar packages. If you want to use it inside your own project, > feel free to use our Maven repository to access the individual modules as > dependencies. > > > > In case you encounter problems or have suggestions, feel free to contact > us ;-) > > > > Greetings, > > > > Sebastian > > -- > > | Dr. Sebastian Schaffert > sebastian.schaffert@salzburgresearch.at > > | Salzburg Research Forschungsgesellschaft > http://www.salzburgresearch.at > > | Head of Knowledge and Media Technologies Group +43 662 2288 > 423 > > | Jakob-Haringer Strasse 5/II > > | A-5020 Salzburg > > > > > > > > -- Iker Huerga
Received on Thursday, 1 December 2011 15:09:55 UTC