vrijdag 4 januari 2013

URI's (revisited) (4 januari 2013)


Smaken
  • resolver: van jezelf (schrijfrechten)
  • resolver: niet van jezelf
  • URN: onbegrijpelijk
  • URN: doet iets vermoeden
  • URI resolved
  • URI resolved niet
Gedachten
  1. De resolver geeft aan wie degene(n) is(zijn) die doorslaggevend zijn in wat er precies wordt aangeven met de URI . Degene(n) met schrijfrechten op die server, mogen het zeggen. Iets is niet voor eens en voor altijd duidelijk. Iedere dag opnieuw kan de bron (degenen die mogen schrijven op de resolver) meer duidelijkheid verschaffen over wat er precies wordt geduid met de URI . 
  2. Zelf (nieuwe) betekenis toekennen aan een URI met een resolver waar jij geen schrijfrechten op hebt, is stom. Technisch kan het maar het creëert verwarring. Je luisteraars zullen afhaken als je dit soort gedrag vertoont.
  3. Als iemand in zijn URI een resolver gebruikt waar hij zelf niet in mag schrijven, dan geeft de persoon daarmee aan: "ik probeer met deze URI iets aan te duiden waar 'de mensen van de resolver' het over hebben of over zouden kunnen hebben"
  4. Ik ben super ongelukkig met de 303-constructie vooral omdat we hiermee twee typen URI's aan het creëren zijn: de URI naar het ding en de URI die resolved op het web. Dit vraagt om problemen en creëert in ieder geval onduidelijkheid omdat je aan de URI niet meer kunt zien of dit nou de URI is die resolved of de URI die naar het ding wijst. Daarvoor moet je eerst de URI in een webbrowser stoppen. En ja, dan kun je kunstgrepen toepassen zoals 'vocab', 'page', of 'resource' in je URI op te nemen. Maar dat gaat me allemaal veel te ver. Bijv. de URI naar een RDF-endpoint, is dat nou een resource of een page? Beide zou ik zeggen. Maar je kunt ook heel goed stellen: geen van tweeën. En voor je het weet zijn we voor de zoveelste keer bezig met het maken van de universele indeling waar de hele wereld zich aan moet houden. Daar wilden we juist van af! Geen discussie meer over ontologieën, we gebruiken URI's om dingen mee aan te duiden, indelingen (ontologieën) kunnen helpen met verduidelijken (de owl:class) maar ze doen niks aan het ding. Het ding van zichzelf is, onafhankelijk wat jij er van vindt. Loop maar eens tegen een muur. Jouw mening doet er niet toe bij deze botsing. De muur bepaalt. 
  5. Als de URI verwijst naar een concept, dan wordt daarmee een poging gedaan om een community te creëren die dit concept gebruikt om haar ding mee te doen. Zie het 'bag of potato chips'-filmpje van TBL (vanaf 2 min 15 )
  6. De URN licht een tipje van de sluier op om aan te geven waar het over gaat. Dat is wel handig want anders moet je altijd opvragen wat er precies wordt aangeduid met de URI . URN's creëren een bepaalde leesbaarheid van de URI . Dat creëren van leesbaarheid is balanceren. Voor je het weet ben je betekenis aan het toevoegen aan het ding en dat wil je juist niet. Het ding is niet zijn betekenis. Het ding is het ding (ceci n'est pas une pipe)
  7. Het opvragen wat er wordt bedoeld met de URI kan met sparql waarmee je bijv. een description opvraagt. Het liefst staat deze description op de server van de resolver. Echter, je kunt natuurlijk ook zelf wat descriptions in de resolver zetten waar jij schrijfrechten op hebt. Hiermee ga je dus omschrijven wat je denkt dat de ander denkt. Ja, dit wordt al weer lekker ingewikkeld. 
  8. Je kunt ook de URI in je browser pasten en zien wat de mensen van de resolver aan toelichting geven.
  9. Met rdfs en owl wordt er gedrag gekoppeld aan URI's. Ik vind dat heel vervelend omdat we juist gedrag en dingen van elkaar wilden scheiden (tenminste ik wil dat). Maar goed, je wilt ook automatiseren, dus ik begrijp dit wel. Maar ook dit mag wat mij betreft wat helderer worden opgezet dan dat het nu gebeurt (het is allemaal nog zo onvolwassen...)
    • met rdfs en owl gaan we gedrag toekennen aan URI's. Dit gedrag bestaat uit het creëren van inferred triples op basis van declared triples.
    • dit gedrag hangt van twee dingen af: de URI en de inferencer (software). Dit (de inferencer) wordt net zoals wat je nu hebt met webbrowsers: met de ene krijg je dit, met de andere krijg je dat.
    • met rdfs en owl creëren we een extra laag in onze triples: relaties en dingen worden getypeerd volgens de rdfs of owl taal. Dit typeren maakt het mogelijk om inferences te maken.
    • deze extra laag moet je apart opvragen. Je komt dus een hoop triples op een rdf-endpoint tegen. Je ziet niet welke triples inferred zijn en welke declared. Als je alle inferred triples wilt kunnen maken, dan moet je ook alle rdfs en owl typeringen opvragen. Vervolgens kun je met je eigen inferencer de inferrerd triples afleiden
    • je ziet de complexiteit al weer ontstaan: is deze triple nu declared of inferred ? door welke inferencer is deze triple nu inferred ? zijn er nog meer inferred triples mogelijk ? zoja, volgens welke inferencer ? is dit inferred triple nu wel terecht (is het waar?)? is het waar volgens iedere context? Ik maak heel vaak mee dat wat vanuit de ene situatie (context) juist is, kan niet juist zijn volgens een andere context. Voor welke contexten is deze inference waar? (modale logica)

Geen opmerkingen:

Een reactie posten