How to use rdflib - 10 common examples

To help you get started, we’ve selected a few rdflib examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github solid / node-solid-server / test / allow.js View on Github external
const assert = require('chai').assert
const { getRequestingWebId, verifyDelegator } = require('../lib/handlers/allow')
const rdf = require('rdflib')
const ns = require('solid-namespace')(rdf)

const alice = 'https://alice.com'  // principal
const agentWebId = 'https://agent.example.com'  // secretary

const verifiedSecretaryGraph = rdf.graph()
verifiedSecretaryGraph.add(
    rdf.namedNode(alice),
    ns.acl('delegates'),
    rdf.namedNode(agentWebId)
  )
const notVerifiedSecretaryGraph = rdf.graph()

describe('handlers/allow.js', () => {
  describe('getRequestingWebId()', () => {
    const emptyFetchDocument = () => {}

    it('should return null if no webId and no onBehalfOf present', () => {
      let webId  // no secretary
      let onBehalfOf  // no principal

      return getRequestingWebId(webId, onBehalfOf, emptyFetchDocument)
        .then(userId => {
          assert.equal(userId, null,
github solid / solid-ui / src / widgets / buttons.js View on Github external
uris.map(function (u) {
      var target = $rdf.sym(u) // Attachment needs text label to disinguish I think not icon.
      console.log('Dropped on attachemnt ' + u) // icon was: UI.icons.iconBase + 'noun_25830.svg'
      ins.push($rdf.st(subject, predicate, target, doc))
    })
    kb.updater.update([], ins, function (uri, ok, errorBody, _xhr) {
github solid / solid-ui / src / authn / authn.ts View on Github external
data: `# ${new Date()} Blank initial Type index
`,
          contentType: 'text/turtle'
        })
        return context
      } catch (e) {
        const msg = `Error creating new index ${e}`
        widgets.complain(context, msg)
      }
    } // putIndex

    context.index = context.index || {}
    context.index[visibility] = context.index[visibility] || []
    let newIndex
    if (context.index[visibility].length === 0) {
      newIndex = $rdf.sym(`${relevant.dir().uri + visibility}TypeIndex.ttl`)
      console.log(`Linking to new fresh type index ${newIndex}`)
      if (!confirm(`OK to create a new empty index file at ${newIndex}, overwriting anything that is now there?`)) {
        throw new Error('cancelled by user')
      }
      console.log(`Linking to new fresh type index ${newIndex}`)
      const addMe = [
        $rdf.st(context.me, ns.solid(`${visibility}TypeIndex`), newIndex, relevant)
      ]
      try {
        await updatePromise(kb.updater, [], addMe)
      } catch (err) {
        const msg = `Error saving type index link saving back ${newIndex}: ${err}`
        widgets.complain(context, msg)
        return context
      }
github solid / solid-ui / src / pad.js View on Github external
prev = here
        next = kb.any(here, PAD('next'))
        queue = next
        queueProperty = 'newlinesBefore'
      }
      tr1 = ele.parentNode
    } else {
      prev = subject
      next = subject
      tr1 = undefined
    }

    var chunk = UI.widgets.newThing(padDoc)
    var label = chunk.uri.slice(-4)

    var del = [$rdf.st(prev, PAD('next'), next, padDoc)]
    var ins = [
      $rdf.st(prev, PAD('next'), chunk, padDoc),
      $rdf.st(chunk, PAD('next'), next, padDoc),
      $rdf.st(chunk, ns.dc('author'), me, padDoc),
      $rdf.st(chunk, ns.sioc('content'), '', padDoc)
    ]
    if (indent > 0) {
      // Do not inherit
      ins.push($rdf.st(chunk, PAD('indent'), indent, padDoc))
    }

    console.log('    Fresh chunk ' + label + ' proposed')
    updater.update(del, ins, function (uri, ok, errorBody, _xhr) {
      if (!ok) {
        // alert("Error writing new line " + label + ": " + errorBody);
        console.log('    ERROR writing new line ' + label + ': ' + errorBody)
github solid / solid-ui / src / authn / authn.ts View on Github external
widgets.complain(context, msg)
      }
    } // putIndex

    context.index = context.index || {}
    context.index[visibility] = context.index[visibility] || []
    let newIndex
    if (context.index[visibility].length === 0) {
      newIndex = $rdf.sym(`${relevant.dir().uri + visibility}TypeIndex.ttl`)
      console.log(`Linking to new fresh type index ${newIndex}`)
      if (!confirm(`OK to create a new empty index file at ${newIndex}, overwriting anything that is now there?`)) {
        throw new Error('cancelled by user')
      }
      console.log(`Linking to new fresh type index ${newIndex}`)
      const addMe = [
        $rdf.st(context.me, ns.solid(`${visibility}TypeIndex`), newIndex, relevant)
      ]
      try {
        await updatePromise(kb.updater, [], addMe)
      } catch (err) {
        const msg = `Error saving type index link saving back ${newIndex}: ${err}`
        widgets.complain(context, msg)
        return context
      }

      console.log(`Creating new fresh type index file${newIndex}`)
      await putIndex(newIndex)
      context.index[visibility].push(newIndex) // @@ wait
    } else {
      // officially exists
      const ixs = context.index[visibility]
      try {
github solid / solid-ui / src / ns.js View on Github external
//
var thisModule = {}

module.exports = thisModule

var $rdf = require('rdflib')

// This used to be a faw function (no ".expand" but that caused the module exports all to be dropped)
thisModule.expand = function (prefixed) {
  var pair = prefixed.split(':')
  if (pair.length === 0) throw new Error('Prefixed name has no colon: ' + prefixed)
  if (!(pair[0] in thisModule)) throw new Error('Unregistered namespace prefix in: ' + prefixed)
  return thisModule[pair[0]](pair[1])
}

thisModule.auth = $rdf.Namespace('http://www.w3.org/ns/auth/acl#') // @@ obsolete - use acl:
thisModule.acl = $rdf.Namespace('http://www.w3.org/ns/auth/acl#')
thisModule.arg = $rdf.Namespace('http://www.w3.org/ns/pim/arg#')
thisModule.cal = $rdf.Namespace('http://www.w3.org/2002/12/cal/ical#')
thisModule.contact = $rdf.Namespace('http://www.w3.org/2000/10/swap/pim/contact#')
thisModule.dc = $rdf.Namespace('http://purl.org/dc/elements/1.1/')
thisModule.dct = $rdf.Namespace('http://purl.org/dc/terms/')
thisModule.doap = $rdf.Namespace('http://usefulinc.com/ns/doap#')
thisModule.foaf = $rdf.Namespace('http://xmlns.com/foaf/0.1/')
thisModule.http = $rdf.Namespace('http://www.w3.org/2007/ont/http#')
thisModule.httph = $rdf.Namespace('http://www.w3.org/2007/ont/httph#')
thisModule.icalTZ = $rdf.Namespace('http://www.w3.org/2002/12/cal/icaltzd#') // Beware: not cal:
thisModule.ldp = $rdf.Namespace('http://www.w3.org/ns/ldp#')
thisModule.link = thisModule.tab = thisModule.tabont = $rdf.Namespace('http://www.w3.org/2007/ont/link#')
thisModule.log = $rdf.Namespace('http://www.w3.org/2000/10/swap/log#')
thisModule.meeting = $rdf.Namespace('http://www.w3.org/ns/pim/meeting#')
thisModule.mo = $rdf.Namespace('http://purl.org/ontology/mo/')
github solid / solid-ui / src / ns.js View on Github external
module.exports = thisModule

var $rdf = require('rdflib')

// This used to be a faw function (no ".expand" but that caused the module exports all to be dropped)
thisModule.expand = function (prefixed) {
  var pair = prefixed.split(':')
  if (pair.length === 0) throw new Error('Prefixed name has no colon: ' + prefixed)
  if (!(pair[0] in thisModule)) throw new Error('Unregistered namespace prefix in: ' + prefixed)
  return thisModule[pair[0]](pair[1])
}

thisModule.auth = $rdf.Namespace('http://www.w3.org/ns/auth/acl#') // @@ obsolete - use acl:
thisModule.acl = $rdf.Namespace('http://www.w3.org/ns/auth/acl#')
thisModule.arg = $rdf.Namespace('http://www.w3.org/ns/pim/arg#')
thisModule.cal = $rdf.Namespace('http://www.w3.org/2002/12/cal/ical#')
thisModule.contact = $rdf.Namespace('http://www.w3.org/2000/10/swap/pim/contact#')
thisModule.dc = $rdf.Namespace('http://purl.org/dc/elements/1.1/')
thisModule.dct = $rdf.Namespace('http://purl.org/dc/terms/')
thisModule.doap = $rdf.Namespace('http://usefulinc.com/ns/doap#')
thisModule.foaf = $rdf.Namespace('http://xmlns.com/foaf/0.1/')
thisModule.http = $rdf.Namespace('http://www.w3.org/2007/ont/http#')
thisModule.httph = $rdf.Namespace('http://www.w3.org/2007/ont/httph#')
thisModule.icalTZ = $rdf.Namespace('http://www.w3.org/2002/12/cal/icaltzd#') // Beware: not cal:
thisModule.ldp = $rdf.Namespace('http://www.w3.org/ns/ldp#')
thisModule.link = thisModule.tab = thisModule.tabont = $rdf.Namespace('http://www.w3.org/2007/ont/link#')
thisModule.log = $rdf.Namespace('http://www.w3.org/2000/10/swap/log#')
thisModule.meeting = $rdf.Namespace('http://www.w3.org/ns/pim/meeting#')
thisModule.mo = $rdf.Namespace('http://purl.org/ontology/mo/')
thisModule.owl = $rdf.Namespace('http://www.w3.org/2002/07/owl#')
thisModule.pad = $rdf.Namespace('http://www.w3.org/ns/pim/pad#')
thisModule.patch = $rdf.Namespace('http://www.w3.org/ns/pim/patch#')
github OSLC / ldp-service / service.js View on Github external
assignURI(req.fullURL, req.get('Slug'), function(err, loc) {
				if (err !== 201) {
					console.log(err)
					res.sendStatus(500)
					return
				}

				// Parse the entity response body, the resource to add to the container
				var newMember = new rdflib.IndexedFormula();
				newMember.uri = loc; 
				rdflib.parse(req.rawBody, newMember, loc, serialize, function(err, document) {
					// document and newMember are the same thing from here on...
					if (err) {
						// allow the URI to be used again if this is a bad request
						console.log(`error parsing POST body for ${loc}, error: ${err}`);
						db.releaseURI(loc)
						res.sendStatus(400)
						return
					}
					updateInteractionModel(newMember); // newMember is RDFResource, DirectContainer or BasicContainer
					addHeaders(req, res, newMember)

					// check if the client requested a specific interaction model through a Link header
					// if so, override what we found from the RDF content
					// TODO: look for Link type=container as well
					if (hasResourceLink(req)) {
						newMember.interactionModel = ldp.RDFSource
github solid / node-solid-server / lib / utils.js View on Github external
function serialize (graph, baseUri, contentType, callback) {
  try {
                // target, kb, base, contentType, callback
    $rdf.serialize(null, graph, baseUri, contentType, function (err, result) {
      if (err) {
        console.log(err)
        return callback(err)
      }
      if (result === undefined) {
        return callback(new Error('Error serializing the graph to ' +
          contentType))
      }

      return callback(null, result)
    })
  } catch (err) {
    console.log(err)
    callback(err)
  }
}
github redaktor / owl2jsonschema.js / lib / index.js View on Github external
var h = (res && res.hasOwnProperty('headers')) ? res.headers : null;
	var b = (h && h.hasOwnProperty('location')) ? h['location'] : this.uri;
	if (this.options.baseUrl === '') this.options.baseUrl = b;
	if (err) return this.parseFile(); 
	// console.log( res.headers, res.statusCode );
	
	if (res.statusCode == 200) {
		var xmlData = '';
		this.options.contentType = this.getType(this.uri, res, this.options.contentType);
		if (this.options.contentType === 'application/rdf+xml') {
			xmlData = body;
		} else {
			var graph = new rdflib.IndexedFormula();
			// TODO - base parameter
			var rawData = rdflib.parse(body, graph, this.uri, this.options.contentType);
			xmlData = rdflib.serialize(rawData, graph, this.uri, 'application/rdf+xml');
		}
		
		var json = this.parseOWL(xmlData, this.options);
		return this.cb(null, json);
	}
}