Working Ontologist Ch. 9 Using RDFS-Plus in the wild 구해모 김윤승 박상훈 송용주...

Preview:

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 aaa@bbb.com…

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 "Shakespeare@gmail.com"]‒ 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