How pmlp:Information becomes a pmlp:Source

From Inference Web

Jump to: navigation, search

(draft example; see iw:PML Primer for an introduction to PML.)

by: Tim Lebo

Contents

Overview

This example discusses how an instance of Information becomes an instance of Source when subsequent Information is extracted from it.

Background

Instances of Information identify a raw string and describe it with a format and language. For example,

  • "Person" is a string in the English language,
  • "Tim,Person" is a string in the CSV format, and
  • "eg:Tim rdf:type foaf:Person ." is a string in the Turtle language.

A SourceUsage is used to cite:

  1. the Source from which the Information's raw string was obtained and
  2. the time that it was obtained.

Example

For example, when we download a file from the web, the URL is a Source and the Information's raw string is the contents of the file on our hard drive:

<http://spreadsheets.google.com/tq?tqx=out:csv&tq=select%20*&key=t8zbhK93-GqTxwTr_DB8KbQ>
   a pmlp:Source;
.

<three.csv>
   a pmlp:Information;
   pmlp:hasReferenceSourceUsage <sourceUsage_ebdff14d-3445-4a13-a3b1-7a5ecbdecd73_content>;
   pmlp:hasRawString """\"\",\"\"
\"Tim\",\"Person\"
\"Jim\",\"Person\"""";
.

<sourceUsage_ebdff14d-3445-4a13-a3b1-7a5ecbdecd73_content>
   a pmlp:SourceUsage;
   pmlp:hasSource        <http://spreadsheets.google.com/tq?tqx=out:csv&tq=select%20*&key=t8zbhK93-GqTxwTr_DB8KbQ>;
   pmlp:hasUsageDateTime "2011-05-11T21:36:19-04:00"^^xsd:dateTime;
.


Information becomes Source

For a particular SourceUsage, the Source is distinct from the Information. However, subsequent SourceUsages that draw raw strings from existing Information will cause those instances to also be of type Source. For example, lets create some new Information based on the Information we already downloaded:

tail -1 three.csv > jim.csv
<three.csv>
   a pmlp:Source;
.

<jim.csv>
   a pmlp:Information;
   pmlp:hasReferenceSourceUsage <sourceUsage_8d326bc3-e763-4251-9f1f-a8a5727c9066>;
   pmlp:hasRawString "\"Jim\",\"Person\"";
.

<sourceUsage_8d326bc3-e763-4251-9f1f-a8a5727c9066>
   a pmlp:SourceUsage;
   pmlp:hasSource        <three.csv>;
   pmlp:hasUsageDateTime "2011-05-11T21:56:18-04:00"^^xsd:dateTime;
.

Avoiding Information-becomes-Source with PML-J

Preferably, we'd like to record how we came upon jim.csv, which we can do with the following PML-J. This approach does not exhibit the "Information becomes Source" problem -- it only occurs when we use pmlp:hasReferenceSourceUsage in the PML-P above.

<nodeSet_8d326bc3-e763-4251-9f1f-a8a5727c9066>
   a pmlj:NodeSet;
   pmlj:hasConclusion  <jim.csv>;
   pmlj:isConsequentOf <inferenceStep__8d326bc3-e763-4251-9f1f-a8a5727c9066>;
.

<inferenceStep_8d326bc3-e763-4251-9f1f-a8a5727c9066>
   a pmlj:InferenceStep;
   pmlj:hasIndex 0;
   pmlj:hasAntecedentList ( <nodeSet_8d326bc3-e763-4251-9f1f-a8a5727c9066_antecedent> );
   pmlj:hasInferenceRule   conv:select_subset_Method;
   oboro:has_agent          <http://purl.org/twc/id/machine/lebot/MacBookPro6_2lebot>;
   hartigprov:involvedActor <http://purl.org/twc/id/machine/lebot/MacBookPro6_2lebot>;
   dcterms:description """tail -1 source/three.csv > manual/jim.csv """;
.

<nodeSet_8d326bc3-e763-4251-9f1f-a8a5727c9066_antecedent>
   a pmlj:NodeSet;
   pmlj:hasConclusion <source/three.csv>;
.
Personal tools
Navigation