@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix : <#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix foaf: <http://xmlns.com/foaf/0.1> . @prefix u: <http://niem.gov/niem/universal/0.1>. @prefix s: <http://niem.gov/niem/structures/0.1>. @prefix c: <http://niem.gov/niem/common/0.1>. @prefix j: <http://www.niem.gov/niem/domains/justice/0.1>. @prefix emer: <http://www.niem.gov/niem/domains/emergency-management/0.1>. @prefix int: <http://www.niem.gov/niem/domains/intelligence/0.1>. @prefix air: <http://www.megginson.com/exp/ns/airports#>. |
|||
:Person a rdfs:Class.
:Official a rdfs:Class; rdfs:subClassOf :Person. :Suspect a rdfs:Class; rdfs:subClassOf :Person. :PersonName a rdfs:Class. xsd:Date a rdfs:Class. :Location a rdfs:Class. :Organization a rdfs:Class. :Employment a rdfs:Class. :EmploymentPosition a rdfs:Class. :name a rdf:Property; rdfs:domain :Person; rdfs:range :PersonName. :birthDate a rdf:Property; rdfs:domain :Person; rdfs:range :PersonName. :homeAddress a rdf:Property; rdfs:domain :Person; rdfs:range :Location. :work a rdf:Property; rdfs:domain :Person; rdfs:range :Organization. :position a rdf:Property; rdfs:domain :Employment; rdfs:range :Employment. :employer a rdf:Property; rdfs:domain :Employment; rdfs:range :Organization. :address a rdfProperty; rdfs:domain :Employment; rdfs:range :Location. u:personGivenName a rdf:Property; rdfs:domain :PersonName; rdfs:range :Literal. u:personMiddleName a rdf:Property; rdfs:domain :PersonName; rdfs:range :Literal. u:personSurName a rdf:Property; rdfs:domain :PersonName; rdfs:range :Literal. u:locationAddress a rdf:Property; rdfs:domain :Location; rdfs:range :Literal. u:locationCityName a rdf:Property; rdfs:domain :Location; rdfs:range :Literal. u:locationStateName a rdf:Property; rdfs:domain :Location; rdfs:range :Literal. u:locationPostalCodeID a rdf:Property; rdfs:domain :Location; rdfs:range :Literal. :organizationName a rdf:Property; rdfs:domain :Organization; rdfs:range :Literal. :Address a rdf:Property; rdfs:domain :Organization; rdfs:range :Location. :Database a rdfs:Class. :owner a rdf:Property; rdfs:domain :Database; rdfs:range :Organization. :DataRecord a rdfs:Class. :PassengerNameRecord a rdfs:Class; rdfs:subClassOf :DataRecord. :source a rdf:Property; rdfs:domain :DataRecord; rdfs:range :Database. :date a rdf:Property; rdfs:domain :DataRecord; rdfs:range xsd:Date. :passenger a rdf:Property; rdfs:domain :PassengerNameRecord; rdfs:range :Person. :flight a rdf:Property; rdfs:domain : PassengerNameRecord; rdfs:range :Flight. :Flight a rdfs:Class. :date a rdf:Property; rdfs:domain :Flight; rdfs:range xsd:Date. :number a rdf:Property; rdfs:domain :Flight; rdfs:range :Literal. :origin a rdf:Property; rdfs:domain :Flight; rdfs:range air:Iata. :destination a rdf:Property; rdfs:domain :Flight; rdfs:range air:Iata. :Event a rdfs:Class. :Search a rdfs:Class; rdfs:subClassOf :Event. :Transfer a rdfs:Class; rdfs:subClassOf :Event. :Assignment a rdfs:Class; rdfs:subClassOf :Event. :CaseOpening a rdfs:Class; rdfs:subClassOf :Event. :WarrantIssue a rdfs:Class; rdfs:subClassOf :Event. :date a rdf:Property; rdfs:domain :Event; rdfs:range xsd:Date. :name a rdf:Property; rdfs:domain :Event; rdfs:range :Literal. :Search a rdfs:Class. :SearchQuery a rdfs:Class. :SearchResult a rdfs:Class. :File a rdfs:Class. :query a rdf:Property; rdfs:domain :Search; rdfs:range :SearchQuery. :result a rdf:Property; rdfs:domain :Search; rdfs:range :SearchResult. :aboutPerson a rdf:Property; rdfs:domain :SearchQuery; rdfs:range xsd:DateTime. :aboutPerson a rdf:Property; rdfs:domain :SearchResult; rdfs:range xsd:DateTime. :dateTime a rdf:Property; rdfs:domain :SearchResult; rdfs:range xsd:DateTime. :source a rdf:Property; rdfs:domain :SearchResult; rdfs:range :Database. :document a rdf:Property; rdfs:domain :SearchResult; rdfs:range :File. :Transfer a rdfs:Class. :sender a rdf:Property; rdfs:domain :Transfer; rdfs:range :Official; rdfs:range :Organization. :recipient a rdf:Property; rdfs:domain :Transfer; rdfs:range :Official; rdfs:range :Organization. :subject a rdf:Property; rdfs:domain :Transfer; rdfs:range :Person. :content a rdf:Property; rdfs:domain :Transfer; rdfs:range :Literal. :Assignment a rdfs:Class. :sender a rdf:Property; rdfs:domain :Assignment; rdfs:range :Official; rdfs:range :Organization. :recipient a rdf:Property; rdfs:domain :Assignment; rdfs:range :Official; rdfs:range :Organization. :subject a rdf:Property; rdfs:domain :Assignment; rdfs:range :Event. :content a rdf:Property; rdfs:domain :Assignment; rdfs:range :Literal. :CaseOpening a rdfs:Class. :Case a rdfs:Class. :justification a rdf:Property; rdfs:domain :CaseOpening; rdfs:range :Event. :opens a rdf:Property; rdfs:domain :CaseOpening; rdfs:range :Case. :isOpenedBy a rdf:Property; rdfs:domain :Case; rdfs:range :CaseOpening. c:caseTrackingID a rdf:Property; rdfs:domain :Case; rdfs:range :Literal. c:caseCategory a rdf:Property; rdfs:domain :Case; rdfs:range c:CaseCategoryText. # a cleaner alternative would be to define subclasses for the different case categories, but the case category text seems to be needed elsewhere :agent a rdf:Property; rdfs:domain :Case; rdfs:range :Official. # needs to be able to reference multiple people who open, close, and work on the case :isClosedBy a rdf:Property; rdfs:domain :Case; rdfs:range :CaseOpening. c:caseTrackingID a rdf:Property; rdfs:domain :Case; rdfs:range :Literal. c:caseCategory a rdf:Property; rdfs:domain :Case; rdfs:range c:CaseCategoryText. :WarrantIssue a rdfs:Class. j:Arrest a rdfs:Class. :subject a rdf:Property; rdfs:domain :WarrantIssue; rdfs:range :. # Don’t what this is. In the example, there is a reference to "warrant-2" that doesn’t appear anywhere else. # Maybe it is a Literal. j:initiatingAttorney a rdf:Property; rdfs:domain :WarrantIssue; rdfs:range :Official. j:judge a rdf:Property; rdfs:domain :WarrantIssue; rdfs:range : Official. j:arrestWarrant a rdf:Property; rdfs:domain :WarrantIssue; rdfs:domain j:Arrest; rdfs:range f:ArrestWarrant. :date a rdf:Property; rdfs:domain j:Arrest; rdfs:range xsd:Date. j:arrestOfficial a rdf:Property; rdfs:domain j:Arrest; rdfs:range :Official. j:arrestSubject a rdf:Property; rdfs:domain j:Arrest; rdfs:range :Suspect. j:arrestLocation a rdf:Property; rdfs:domain j:Arrest; rdfs:range :Loaction. j:arrestCharge a rdf:Property; rdfs:domain j:Arrest; rdfs:range j:ArrestCharge. j:arrestSubjectRightsReadIndicator a rdf:Property; rdfs:domain j:Arrest; rdfs:range xsd:Boolean. j:ArrestWarrant a rdfs:Class. c:caseCategory a rdf:Property; rdfs:domain :ArrestWarrant; rdfs:range c:CaseCategoryText. date: a rdf:Property; rdfs:domain :ArrestWarrant; rdfs:range xsd:Date. j:caseCourt a rdf:Property; rdfs:domain :ArrestWarrant; rdfs:range :Court. j:arrestSubject a rdf:Property; rdfs:domain :ArrestWarrant; rdfs:range :Suspect. j:data a rdf:Property; rdfs:domain :ArrestWarrant; rdfs:range :ArrestData # I have encapsulated in ArrestData a number of data relevant to the particular case, they might change from one case category to another |
|||
# Persons
:JohnDoe a :Suspect; :name [u:personGivenName "John"; u:personMiddleName "Henry"; u:personSurName "Doe"]; :birthDate 1975-08-24; :homeAddress [:locationAddress "123 Main Street"; :locationCityName "New York"; :locationStateName "NY"; :locationPostalCodeID "10044"] . :AliceDoe a :Suspect; :name [u:personGivenName "Alice"; u:personMiddleName "Liddell"; u:personSurName "Doe"]; :homeAddress [:locationAddress "325 Beacon Street"; :locationCityName "Boston"; :locationStateName "MA"; :locationPostalCodeID "02111"] . :RobinsonDuckworth a :Official; :name [u:personGivenName "Robinson"; u:personMiddleName ""; u:personSurName "Duckworth"]; :work [:position :CriminalInvestigator; :employer :TSA-DC] . :CharlesDodgson a :Official; :name [u:personGivenName "Charles"; u:personMiddleName "Lutwidge"; u:personSurName "Dodgson"]; :work [:position :SpecialAgent; :employer :FBI-NYC], [:position :AssistantUSAttorney; :employer :USAO-NY] . : AnnaLiszt a :Official; :name [u:personGivenName "Anna"; u:personMiddleName ""; u:personSurName "Liszt"]; :work [:position :IntelligenceAnalyst; :employer :FBI-NYC] . : MattDillon a :Official; :name [u:personGivenName "Matthew"; u:personMiddleName ""; u:personSurName "Dillon"]; :work [:position :DeputyMarshal; :employer :marshalls-NY] . # Not declared in original example, but used. : JosephCrater a :Official; :name [u:personGivenName "Joseph"; u:personMiddleName "F."; u:personSurName "Crater"]; :work [:position :Judge; :employer :NYCFC] . |
|||
# Organizations
:FBI-NYC a :Organization; :organizationName "FBI"; :address [:locationCityName "New York"; :locationStateName "NY"] . :TSA-DC a :Organization; :organizationName "TSA"; :address [:locationCityName "Washington"; :locationStateName "DC"] . :JTTF-NY a :Organization; :organizationName "Joint Terrorism Task Force"; :address [:locationCityName "New York"; :locationStateName "NY"] . :Marshals-NY a :Organization; :organizationName "US Marshals"; :address [:locationCityName "New York"; :locationStateName "NY"] . :USAO-NY a :Organization; :organizationName "United States Attorney's Office"; :address [:locationCityName "New York"; :locationStateName "NY"] . # Not declared in original example, but used :NYCFC a :Organization; :organizationName "New York City Family Court" . # Not declared in original example, but used :MCC a :Organization; :organizationName "Metropolitan Correctional Center" . |
|||
# Databases
:TSDB a :Database. :lexis a :Database; :owner [:organizationName "LexisNexis"] . :AA-PNR a :Database :owner [:organizationName "American Airlines"] . |
|||
This transaction log is | # Data record | ||
from the Transportation Security Administration | |||
which is part of the Department of Homeland Security | |||
which is part of the Executive Branch | |||
which is part of the US Government | |||
TSA receives | |||
PNR data | :pnr-1 a :PassengerNameRecord; | ||
from American Airlines | :source :AA-PNR; | ||
About John Henry Doe | :passenger
[:name [:personGivenName "John", :personMiddleName "Henry", :personSurName "Doe"]; |
||
DOB: 8/24/75 | :birthDate 1975-08-24]; | ||
Who traveled on flight | :flight | ||
no. 723 | [:number "723", | ||
from New York (LaGuardia) | :origin :LGA, | ||
to Chicago (O'Hare) | :destination :ORD, | ||
on 6/14/04 | :date 2004-06-14] | ||
This data is automatically | |||
matched against other data | :flight-test-search-1 a :Search; | ||
from three sources | |||
:date 2005-09-12;
:name "Secure Flight Test"; |
|||
the matching ("search") query is looking for | :query | ||
a person named John Henry Doe | [:aboutPerson
[:name [:personGivenName "John", :personMiddleName "Henry", :personSurName "Doe"]; |
||
with a DOB of 8/24/75 | :birthDate 1975-08-24]]; | ||
:result | |||
The result of the first match |
|||
[:datetime 2005-09-12T12:00:01; | |||
which was from the Terrorist Screening Database | :source :TSDB; |
||
was the finding of a person named John Henry Doe | :aboutPerson
[:name [:personGivenName "John", :personMiddleName "Henry", :personSurName "Doe"]] |
||
no DOB information is included | ], | ||
The result of the second match | |||
[:datetime 2005-09-12T12:00:12; | |||
which was from the LexisNexis database | :source :lexis; |
||
was the finding of a person named John Henry Doe | :aboutPerson
[:name [:personGivenName "John", :personMiddleName "Henry", :personSurName "Doe"]; |
||
who is associated with the address 123 Main , New York, NY 10044 | :homeAddress
[:locationAddress "123 Main Street"; :locationCityName "New York"; :locationStateName "NY"; :locationPostalCodeID "10044"]; |
||
with a DOB of 8/24/75 | :birthDate 1975-08-24;
], |
||
The result of the third match | |||
[:datetime 2005-09-12T12:00:15; | |||
which was from the LexisNexis database | :source :lexis; | ||
was the finding of a person named John Henry Doe | :aboutPerson
[:name [:personGivenName "John", :personMiddleName "Henry", :personSurName "Doe"]; |
||
who is associated with the address 723 High Street, Seattle, WA 98104 | :homeAddress
[:locationAddress "723 High Street"; :locationCityName "Seattle"; :locationStateName "WA"; :locationPostalCodeID "98104"]; |
||
with a DOB of 8/24/75. | :birthDate 1975-08-24;
]. |
||
Because there is a match, | |||
the system displays the information to | |||
Robinson Duckworth | |||
a Criminal Investigator | |||
employed by TSA in Washington, DC | |||
The data is sent |
# <!-- TSA Sends Match to FBI -->
# Subject in the example refers to a Person(-id). I have simplified (generalized) this to mean any string, as in the subject of a mail message. # This is possibly not correct. :transfer-1 a :Transfer; :name "0876553"; :subject :JohnDoe; |
||
on 9/17/05 | :date 2005-09-17; | ||
by Duckworth | :sender :RobinsonDuckworth; | ||
to Charles Lutwidge Dodson | :recipient :CharlesDodgson; | ||
a Special Agent | |||
employed by the FBI in New York | |||
because | |||
:content "Secure flight match. Possible terror suspect" . |
|||
matching a name from a PNR with a name from TSDB | |||
without any other information | |||
is sufficient evidence | |||
that the person may be associated with terrorism | |||
and | |||
matching a name and DOB from a PNR with a commercial database | |||
is sufficient evidence | |||
that the data may be about the same person | |||
Data about | |||
John Henry Doe | |||
is received by | |||
Charles Lutwidge Dodson | |||
from | |||
Robinson Duckworth | |||
#<!-- FBI opens an investigation --> (3)
# it would be nice to have "an" as a synonym of "a". :open-investigation-1 a :OpeningCase; :justification :transfer-1; :opens investigation-1 . :investigation-1 a :Case; c:caseTrackingID "555NY5678"; c:caseCategory :intelligence; xsd:date 2005-09-18; |
|||
Dodgson | :agent :CharlesDodgson;
:agency :FBI-NYC; |
||
investigates | :isOpenedBy :open-investigation-1
. |
||
Doe | |||
Dodgson | |||
checks every system | |||
to which he has access | |||
for information about Doe | |||
:open-source-search-2 a :Search; | |||
New York State's | |||
website for outstanding arrest warrants for unpaid child support | |||
indicates that the | |||
John Henry Doe | :query [:aboutPerson
[:name [:personGivenName "John", :personMiddleName "Henry", :personSurName "Doe"]; |
||
who is associated with the address 123 Main , New York, NY 10044 | :homeAddress
[:locationAddress "123 Main Street"; :locationCityName "New York"; :locationStateName "NY"; :locationPostalCodeID "10044"]; |
||
with a DOB of 8/24/75 | :birthDate 1975-08-24;
] ]; |
||
:result
[:datetime 2005-10-02T12:00:01; |
|||
is the subject of an outstanding child support warrant | :source <http://appsext4.dos.state.ny.us/ csewarrants_public/cse_search>; :document :ny-warrant ] . |
||
# <!-- arrest subject -->
# Arrest Location is not correct in the example. I have invented one. :18USC228 a j:ArrestCharge. [:date 2005-11-01; |
|||
Dodgson arrests | j:arrestOfficial :Dodgson; | ||
John Henry Doe | j:arrestSubject :JohnDoe; | ||
j:arrestLocation [:locationCityName "New York";
:locationStateName "NY"]; j:arrestCharge :18USC228; j:arrestSubjectRightsReadIndicator true] a j:Arrest. |
|||