Upload
jodie-burke
View
227
Download
0
Embed Size (px)
Citation preview
Working Ontologist Ch. 9 Using RDFS-Plus in the wild
구해모 김윤승 박상훈 송용주 임유빈
Open Government Data Friend of a Friend (FOAF) Facebook’s Open Graph Protocol (OGP)
Contents
2 / 34
To publish public information by US government from 2009‒ Data sets available in various machine-readable formats
Good example of “raw” data‒ Not for particular application‒ Reusable in multiple applications
Recent status (2015.11.28)‒ 188,535 data sets‒ 78 Agencies & 415 publishers‒ 7071 datasets available in RDF‒ Latest update on 2015.11.28
Open Government Data – Data.gov
3 / 34
정부 3.0 패러다임의 영향 16 개 분야 20,050 개 데이터 셋 다양한 데이터 형식 지원
‒ CSV, XML, RDF …
www.data.go.kr
공공 데이터 포털
4 / 34
Office of Fair Housing/Equal Opportunity (FHEO) dataset‒ Cases about alleged violations of Title VIII Fair Housing Act‒ Originally released in spreadsheet
Describing Data [1/5]
original dataset:entry1 a dgtwc:DataEntry ; :case_number “03-08-0177-8" ; :color "0" ; :disability "1" ; :familial_status "0" ; :filed_cases "1" ; :filing_date “1/1/2008" ; :national_origin "0" ; :national_origin_hispanic "0" ; :race "0" ; :race_asian "0" ; :race_asian_and_white "0" ; :race_black_and_white "0" ; :race_black_or_african_american "0" ; :race_hawaiian_or_pacific_islander "0" ; :race_native_american "0" ; :race_native_american_and_black "0" ; :race_native_american_and_white "0" ; :race_other_multi_racial "0" ; :race_white "0" ; :religion "0" ; :retaliation "0" ; :sex "0" ; :violation_county “Sussex County" ; :violation_state “Delaware" .5 / 34
More flexible way to represent information as complaintsFHEO:Color rdfs:subClassOf FHEO:Complaint .
FHEO:Disability rdfs:subClassOf FHEO:Complaint .
FHEO:FamilialStatus rdfs:subClassOf FHEO:Complaint .
FHEO:NationalOrigin rdfs:subClassOf FHEO:Complaint .
...
Express status of :entry1:entry1 a FHEO:Disability .
Modification on data with SPARQL
CONSTRUCT {?e a FHEO:Disability}WHERE {?e a dgtwc:DataEntry .
?e :disability "1" . }
Describing Data [2/5]
Complaint
Disability
subClassOf
entry1
6 / 34
Relationship between data‒ Is :race_Asian listed under :race?‒ Check with SPARQL query
ASK
{?a a FHEO:Asian .
UNSAID {?a a FHEO:Race}}
FHEO:Asian rdfs:subClassOf FHEO:Race .
Describing Data [3/5]
Asian
Race
FALSE
Asian Race
TRUE
7 / 34
Check whether any members aren’t members of parents
Describing Data [4/5]
SELECT (COUNT (?suball) AS ?total)(COUNT (?subonly) AS ?mismatch) ?class ?parentWHERE { ?class rdfs:subClassOf+ FHEO:Complaint . ?class rdfs:subClassOf ?parent . FILTER (?parent != FHEO:Complaint) { {?suball a ?class} UNION {?subonly a ?class . UNSAID{?subonly a ?parent} } }}GROUP BY ?class ?parent
8 / 34
Result table
Describing Data [5/5]
9 / 34
Complaint with location information in FHEOFHEOFiling:entry13459
a FHEO:FamilialStatus ;
FHEO:violation_county "Los Angeles County" ;
FHEO:violation_state "California" .
Other data source for location information‒ Address services with various information
US:Los_Angeles_CountyCalifornia
a US:County ;
rdfs:label "Los Angeles County, California" ;
geo:lat "34.3871821"^^xsd:float ;
geo:long "-228.1122679"^^xsd:float .
Merging Data – FHEO [1/5]
34.39-228.11
LA_CountyCalifornia
LA County, California
US:County
label
latlong
entry13459
LA County
California
county
state
10 / 34
Get combined name of county & state from complaintSELECT (fn:concat (?county, ", ", ?state) AS ?countyname)
WHERE {
?complaint FHEOFiling:violation_county ?county .
?complaint FHEOFiling:violation_state ?state .
}
Query for complaint with various location informationSELECT ?countyname ?complaint ?lat ?long
WHERE {
{SELECT (fn:concat (?county, ", ", ?state) AS ?countyname)
WHERE {
?complaint FHEO:violation_county ?county .
?complaint FHEO:violation_state ?state .
}
}
?c rdfs:label ?countyname .
?c a US:County .
?c geo:lat ?lat .
?c geo:long ?long
}
Merging Data – FHEO [2/5]
location information
LA County
California
LA County, California
11 / 34
How many complaints occurred in each county
Merging Data – FHEO [3/5]
SELECT ?type (COUNT (?complaint) AS ?severity) ?countyname ?lat ?longWHERE {
{SELECT ?type ?complaint (fn:concat (?county, ", ", ?state)AS ?countyname)
WHERE {?type rdfs:subClassOf+ FHEO:Complaint .?complaint a ?type .?complaint FHEO:violation_county ?county .?complaint FHEO:violation_state ?state .
}}?c rdfs:label ?countyname .?c a US:County .?c geo:lat ?lat .?c geo:long ?long .
}GROUP BY ?type ?countyname ?lat ?longHAVING (?severity > 300)
location information
12 / 34
Result table of previous query
Merging Data – FHEO [4/5]
13 / 34
Put result on a map
Merging Data – FHEO [5/5]
14 / 34
Fundamental relationship in social networks
Simple observation for individuals to support social network‒ Take control of own data‒ Interact with other users
AAA principle‒ Anyone can say Anything about Any topic‒ Topics commonly related to about people‒ Core FOAF description
Organization (people belong to) Project (people work on) Document (people create or describe) Image (depict people)
Friend of a Friend (FOAF)
15 / 34
Format for distributed description of people & relationship Distributed person’s information across Web
‒ Basic information on own web page About interest, current projects, images, etc.
‒ Further information available on other pages Photo at party which is not listed on own page Laboratory page for list of members
FOAF
Name AAge 25Mail [email protected]…
A’s Web page
Z lab’s member
ABC
Z lab’s Web pagePicture with A
on other Web page16 / 34
Some things about people are true of other things‒ Groups, organizations, etc.
General grouping of foaf:Agent
FOAF – People & agents
Agent
Person OrganizationGroup
subClassOf
gender, mbox, age, birthday, etc.
famliyName,firstName, etc
member
17 / 34
Essential thing about a person Anything can have name, printable label
foaf:name rdfs:domain owl:Thing.
foaf:name rdfs:subPropertyOf rdfs:label.
Parts of name are also neededfoaf:firstName foaf:givenname foaf:family_name foaf:surname
Covering different cultures’ usage of name‒ If 2 properties are used in same
foaf:surname owl:equivalentProperty foaf:family_name.
FOAF - Name
18 / 34
Since FOAF is used on the Web, Many people will be used to describe internet communities
‒ foaf:aimChatID, foaf:icqChatID, foaf:msnChatID, etc.
subProperty of foaf:nick
Nicknames and Online Names
19 / 34
foaf:homepage‒ Relates a person to their homepage
foaf:wolkplaceHomepage‒ The homepage of the worklplace of a person
foaf:workInfoHomepage‒ The homepage of a person at their workplace
foaf:schoolHomepage‒ The school that a foaf:Person attended
foaf:weblog‒ The address of the web blog of a person
Online Persona
20 / 34
Many people belong to special groups Connected to a group with foaf:member Group can be defined loosely A number of properties that can describe foaf:Group
‒ Chat ID, a nickname, and e-mail box, a homepage, or even a blog
Group members to instance of a class‒ Consider the members of a group as instances of a class‒ FOAF provides a link from a group to a Class, called
foaf:membershipClass
Groups of People [1/2]
21 / 34
Define English Monarchy Group
Below can be inferred
Groups of People [2/2]
:English_Monarchy
a foaf:Group ;
foaf:name "English Monarchy" ;
foaf:homepage "http://www.monarchy.com/" ;
foaf:member :William_I, :Henry_II,
:Elizabeth_I, :Elizabeth_II .
:English_Monarchy foaf:membershipClass :Monarch .
:William_I a :Monarch .
:Henry_II a :Monarch .
:Elizabeth_I a :Monarch .
:Elizabeth_II a :Monarch .
22 / 34
FOAF provides two properties ‒ foaf:made and foaf:maker
Things People Make and Do
foaf:made rdfs:domain foaf:Agent .
foaf:made rdfs:range owl:Thing .
foaf:maker rdfs:domain owl:Thing .
foaf:maker rdfs:range foaf:Agent .
foaf:made owl:inverseOf foaf:maker .
foaf:Agent
owl:Thing
foaf:made
foaf:maker
23 / 34
If someone else wants to contribution information about me, how will that person refer to me?‒ RDF uses URIs
But not everyone has Facebook account
Is there any identifying marker that everyone on the Internet already has?‒ E-mail address
Identity in FOAF [1/3]
https://www.facebook.com/zuck
24 / 34
owl:InverseFunctionalProperty
‒ uniquely identifies an individual foaf:mbox rdf:type owl:InverseFunctionalProperty.
Mailbox is unique identifier‒ No other people uses same e-mail address
In addition, all chatId have owl:InverseFunctionalProperty
Identity in FOAF [2/3]
foaf:aimChatID rdf:type owl:InverseFunctionalProperty.
foaf:homepage rdf:type owl:InverseFunctionalProperty.
foaf:icqChatID rdf:type owl:InverseFunctionalProperty.
foaf:jabberID rdf:type owl:InverseFunctionalProperty.
foaf:msnChatID rdf:type owl:InverseFunctionalProperty.
foaf:weblog rdf:type owl:InverseFunctionalProperty.
foaf:yahooChatID rdf:type owl:InverseFunctionalProperty.
25 / 34
To solve problem‒ Using the foaf:mbox
Publishing someone’s e-mail address is considered a violation of privacy‒ [foaf:mbox "[email protected]"]‒ Using hash function
[foaf:mbox_sha1sum "f964f2dfd4784fe9d68a-da960099e0b592e16a95"]
‒ FOAF does not provide a standard way foaf:aimChatID, foaf:yahooChatID
Identity in FOAF [3/3]
26 / 34
FOAF provides a single property for this relationship foaf:knows
FOAF designers intentionally left out the assertion of foaf:knows as an owl:SymmetricProperty
It’s Not What You Know, It’s Who You Know
foaf:knows rdfs:domain foaf:Person.
foaf:knows rdfs:range foaf:Person.
foaf:Person
foaf:Person
foaf:knows
27 / 34
FOAF the longest, Facebook the largest social network Open Graph Protocol (OGP)
‒ Allows to integrate with other web sites
Before OGP, only “Like” a page on Facebook Expand to include pages that weren’t part of Facebook
Facebook’s Open Graph Protocol
28 / 34
Very simple model allowing web page author to describe mul-tiple things web pages describe
Properties to describe the things one might like‒ Describe location (place names, latitude and longitude)‒ Display purposes (image)‒ Contact information (phone number, email, fax number)‒ Identifier (UPC, ISBN, or URL)
Criticized for not adopting existing standards for theses things‒ Ex. W3C already has a standard for geospatial models
The OGP Model
29 / 34
Using the simple OGP model ‒ Web page author can describe what their page is about ‒ Still have to publish that information somehow
Easiest way is to embed description in web page itself
Use simplified version RDFa to encode OGP data in web page‒ Put all OGP data into HTML tags in page header
Embedding OGP in a Web Page
30 / 34
OGP Example: TechCrunch [1/2]
31 / 34
OGP Example: TechCrunch [2/2]
32 / 34
Data.gov‒ Project to make US government spending data available in RDF
FOAF‒ Representation social network information short for “friend of a friend”
RDFa‒ A system for embedding RDF data in a web page
OGP‒ Lets Facebook users link to pages outside of Facebook
Summary
33 / 34