Overview
Mediaflux
...
Mediaflux concepts
...
Retrieving metadata
The general command is:
Code Block |
---|
asset.get :id ASSET-ID asset.get :id "path=FULL-PATH-TO-FILE" |
If we wanted to extract a specific piece of information, such as the checksum, we use the optional xpath argument:
Code Block |
---|
pawsey:/projects/Data Team/testfiles>asset.get :id 69776098 :xpath content/csum
value = 384461DE |
Populating metadata
Code Block |
---|
asset.set :id ASSET-ID <ELEMENT AND VALUE> |
Code Block |
---|
asset.set :id ASSET-ID69776160 :name "new filename" version = 2 { changed-or-created=true stime=74452766 } |
Note: a new version of the asset is created - reflecting the fact that the name has been altered.
A more complex example, where we assign a geospatial location (in this case a point) to an asset:
Code Block |
---|
asset.set :id 123469776160 :geoshape < :point < :latitude -31.95 :longitude 115.86 :elevation 10.0 > > version = 3 { changed-or-created=true stime=74452768 } |
This last case is an example of specifying an XML document that details the xpath + value for metadata items.
It is equivalent to an XML metadata document that looks like this:
Code Block |
---|
<geoshape> <point> <latitude> -31.95 </latitude> <longitude> 115.86 </longitude> <elevation> 10.0 </elevation> </point> </geoshape> |
If we wanted to extract one of those pieces of information we could do:
Code Block |
---|
asset.get :id 1234 :xpath geoshape/point/elevation
value = 10.0 |
Slight digression - metadata templates
The doc type shows the metadata that can be queried and specified.
Custom doc types can be made.
Asset is a special "first-order" type attached to everything.
Custom doc types get added under the <meta> element.
Code Block |
---|
asset.doc.type.describe :type asset |
Querying the metadata
asset.set :id ASSET-ID :meta < :mf-note "This is my note >The simple form of an asset query is:
Code Block |
---|
asset.query :where "LOGICAL-EXPRESSION" asset.query :where "namespace='/projects/Demo'" asset.query :where "namespace>='/projects/Demo' and name='*.jpg'" asset.query :where "namespace>='/projects/Data Team/sean' and (name='*.JPG' or name='*.PNG')" |
Simple actions on the results
Code Block |
---|
asset.query :where "namespace>='/projects/Data Team/sean' and name='*.jpg'" :action get-value :xpath -ename name name |
Exercises
Exercise 1 - upload a file and then inspect the metadata in the system.
Expand | ||
---|---|---|
| ||
put IMG_0222.PNG asset.get :id "path=/projects/Data Team/sean/IMG_0222.PNG" asset = None { version=4 id=1377760 vid=74319092 } type = image/png namespace = /projects/Data Team/sean path = /projects/Data Team/sean/IMG_0222.PNG name = IMG_0222.PNG meta = None { stime=74319092 } etc |
Exercise - querying metadata - geospatial search? TODO - import some geoshape attached
...