From: Kenny G. <gz...@gm...> - 2009-10-22 07:20:39
|
Hey, I am doing some work on semantic search and I may want to use dbpedia as seed data. The thing I want to do now is, given a dbpedia ontology class, say COMPANY, i want to get all attributes of COMPANY. I see there are 170+ classes and 900+ attributes in dbpedia ontology. For each object/instance, its type/class is specified in "Ontology type" dataset, its attributes are specified in "Ontology infoboxes" dataset. But seems no dataset directly specifies the attributes of a particular class, right? if it is, how to write a SPARQL script to get attributes of COMPANY? I have never written a SPARQL, hope to start with this one. can someone give some help? Thanks in advance Kenny |
From: Pierre De W. <pie...@gm...> - 2009-10-22 08:42:48
|
SELECT * WHERE { {?s ?p ?o. FILTER(?s IN (< http://dbpedia.org/ontology/Company>))} } 2009/10/22 Kenny Guan <gz...@gm...> > Hey, > I am doing some work on semantic search and I may want to use dbpedia as > seed data. The thing I want to do now is, given a dbpedia ontology class, > say COMPANY, i want to get all attributes of COMPANY. > > I see there are 170+ classes and 900+ attributes in dbpedia ontology. For > each object/instance, its type/class is specified in "Ontology type" > dataset, its attributes are specified in "Ontology infoboxes" dataset. But > seems no dataset directly specifies the attributes of a particular class, > right? > > if it is, how to write a SPARQL script to get attributes of COMPANY? I have > never written a SPARQL, hope to start with this one. can someone give some > help? > > Thanks in advance > Kenny > > > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry(R) Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart your > developing skills, take BlackBerry mobile applications to market and stay > ahead of the curve. Join us from November 9 - 12, 2009. Register now! > http://p.sf.net/sfu/devconference > _______________________________________________ > Dbpedia-discussion mailing list > Dbp...@li... > https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion > > |
From: Kenny G. <gz...@gm...> - 2009-10-22 11:57:39
|
Hi Pierre, thanks for your reply. Maybe I didn't describe my question clearly. the attributes of Company I want is like "founder", "year of foundation" etc. A more specific example, an instance of Company like, Apple, has an attribute "founder" with value of "Steve Jobs". does this make any sense? Many thanks Kenny On Thu, Oct 22, 2009 at 4:42 PM, Pierre De Wilde <pie...@gm...>wrote: > SELECT * WHERE { {?s ?p ?o. FILTER(?s IN (< > http://dbpedia.org/ontology/Company>))} } > > 2009/10/22 Kenny Guan <gz...@gm...> > >> Hey, >> >> I am doing some work on semantic search and I may want to use dbpedia as >> seed data. The thing I want to do now is, given a dbpedia ontology class, >> say COMPANY, i want to get all attributes of COMPANY. >> >> I see there are 170+ classes and 900+ attributes in dbpedia ontology. For >> each object/instance, its type/class is specified in "Ontology type" >> dataset, its attributes are specified in "Ontology infoboxes" dataset. But >> seems no dataset directly specifies the attributes of a particular class, >> right? >> >> if it is, how to write a SPARQL script to get attributes of COMPANY? I >> have never written a SPARQL, hope to start with this one. can someone give >> some help? >> >> Thanks in advance >> Kenny >> >> >> ------------------------------------------------------------------------------ >> Come build with us! The BlackBerry(R) Developer Conference in SF, CA >> is the only developer event you need to attend this year. Jumpstart your >> developing skills, take BlackBerry mobile applications to market and stay >> ahead of the curve. Join us from November 9 - 12, 2009. Register now! >> http://p.sf.net/sfu/devconference >> _______________________________________________ >> Dbpedia-discussion mailing list >> Dbp...@li... >> https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion >> >> > > > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry(R) Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart your > developing skills, take BlackBerry mobile applications to market and stay > ahead of the curve. Join us from November 9 - 12, 2009. Register now! > http://p.sf.net/sfu/devconference > _______________________________________________ > Dbpedia-discussion mailing list > Dbp...@li... > https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion > > |
From: Richard C. <ri...@cy...> - 2009-10-22 12:59:37
|
On 22 Oct 2009, at 12:57, Kenny Guan wrote: > Hi Pierre, > > thanks for your reply. Maybe I didn't describe my question clearly. > the > attributes of Company I want is like "founder", "year of foundation" > etc. > > A more specific example, an instance of Company like, Apple, has an > attribute "founder" with value of "Steve Jobs". Try something like: SELECT DISTINCT ?p WHERE { ?s a <http://dbpedia.org/ontology/Company> . ?s ?p ?o . } This gets all resources of type Company, then finds all triples that have this resource as subject, and returns the predicate of these triples. The DISTINCT removes duplicates. Optionally you might want to also put this into the angle brackets, after the last dot: FILTER (REGEX(?p, 'ontology')) This removes all properties that do not have "ontology" in the URI, giving you only the properties defined by the ontology, and skipping general infobox properties. Hope that's what you're after. Best, Richard > > does this make any sense? > > Many thanks > Kenny > > > On Thu, Oct 22, 2009 at 4:42 PM, Pierre De Wilde <pie...@gm... > >wrote: > >> SELECT * WHERE { {?s ?p ?o. FILTER(?s IN (< >> http://dbpedia.org/ontology/Company>))} } >> >> 2009/10/22 Kenny Guan <gz...@gm...> >> >>> Hey, >>> >>> I am doing some work on semantic search and I may want to use >>> dbpedia as >>> seed data. The thing I want to do now is, given a dbpedia ontology >>> class, >>> say COMPANY, i want to get all attributes of COMPANY. >>> >>> I see there are 170+ classes and 900+ attributes in dbpedia >>> ontology. For >>> each object/instance, its type/class is specified in "Ontology type" >>> dataset, its attributes are specified in "Ontology infoboxes" >>> dataset. But >>> seems no dataset directly specifies the attributes of a particular >>> class, >>> right? >>> >>> if it is, how to write a SPARQL script to get attributes of >>> COMPANY? I >>> have never written a SPARQL, hope to start with this one. can >>> someone give >>> some help? >>> >>> Thanks in advance >>> Kenny >>> >>> >>> ------------------------------------------------------------------------------ >>> Come build with us! The BlackBerry(R) Developer Conference in SF, CA >>> is the only developer event you need to attend this year. >>> Jumpstart your >>> developing skills, take BlackBerry mobile applications to market >>> and stay >>> ahead of the curve. Join us from November 9 - 12, 2009. Register >>> now! >>> http://p.sf.net/sfu/devconference >>> _______________________________________________ >>> Dbpedia-discussion mailing list >>> Dbp...@li... >>> https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion >>> >>> >> >> >> ------------------------------------------------------------------------------ >> Come build with us! The BlackBerry(R) Developer Conference in SF, CA >> is the only developer event you need to attend this year. Jumpstart >> your >> developing skills, take BlackBerry mobile applications to market >> and stay >> ahead of the curve. Join us from November 9 - 12, 2009. Register now! >> http://p.sf.net/sfu/devconference >> _______________________________________________ >> Dbpedia-discussion mailing list >> Dbp...@li... >> https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion >> >> > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry(R) Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart > your > developing skills, take BlackBerry mobile applications to market and > stay > ahead of the curve. Join us from November 9 - 12, 2009. Register now! > http://p.sf.net/sfu/devconference_______________________________________________ > Dbpedia-discussion mailing list > Dbp...@li... > https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion |
From: Kenny G. <gz...@gm...> - 2009-10-22 13:20:29
|
Hi Richard, This is exactly what I want! thank you so much. by the way, how the SPQRQL end point resolve "?s a < http://dbpedia.org/ontology/Company>"? is it trying to find the triples with p as <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> and o as <http://dbpedia.org/ontology/Company> ? thanks Kenny On Thu, Oct 22, 2009 at 8:59 PM, Richard Cyganiak <ri...@cy...>wrote: > > On 22 Oct 2009, at 12:57, Kenny Guan wrote: > > Hi Pierre, >> >> thanks for your reply. Maybe I didn't describe my question clearly. the >> attributes of Company I want is like "founder", "year of foundation" etc. >> >> A more specific example, an instance of Company like, Apple, has an >> attribute "founder" with value of "Steve Jobs". >> > > Try something like: > > SELECT DISTINCT ?p WHERE { > ?s a <http://dbpedia.org/ontology/Company> . > ?s ?p ?o . > } > > This gets all resources of type Company, then finds all triples that have > this resource as subject, and returns the predicate of these triples. The > DISTINCT removes duplicates. > > Optionally you might want to also put this into the angle brackets, after > the last dot: > > FILTER (REGEX(?p, 'ontology')) > > This removes all properties that do not have "ontology" in the URI, giving > you only the properties defined by the ontology, and skipping general > infobox properties. > > Hope that's what you're after. > > Best, > Richard > > > >> does this make any sense? >> >> Many thanks >> Kenny >> >> >> On Thu, Oct 22, 2009 at 4:42 PM, Pierre De Wilde <pie...@gm... >> >wrote: >> >> SELECT * WHERE { {?s ?p ?o. FILTER(?s IN (< >>> http://dbpedia.org/ontology/Company>))} } >>> >>> 2009/10/22 Kenny Guan <gz...@gm...> >>> >>> Hey, >>>> >>>> I am doing some work on semantic search and I may want to use dbpedia as >>>> seed data. The thing I want to do now is, given a dbpedia ontology >>>> class, >>>> say COMPANY, i want to get all attributes of COMPANY. >>>> >>>> I see there are 170+ classes and 900+ attributes in dbpedia ontology. >>>> For >>>> each object/instance, its type/class is specified in "Ontology type" >>>> dataset, its attributes are specified in "Ontology infoboxes" dataset. >>>> But >>>> seems no dataset directly specifies the attributes of a particular >>>> class, >>>> right? >>>> >>>> if it is, how to write a SPARQL script to get attributes of COMPANY? I >>>> have never written a SPARQL, hope to start with this one. can someone >>>> give >>>> some help? >>>> >>>> Thanks in advance >>>> Kenny >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Come build with us! The BlackBerry(R) Developer Conference in SF, CA >>>> is the only developer event you need to attend this year. Jumpstart your >>>> developing skills, take BlackBerry mobile applications to market and >>>> stay >>>> ahead of the curve. Join us from November 9 - 12, 2009. Register now! >>>> http://p.sf.net/sfu/devconference >>>> _______________________________________________ >>>> Dbpedia-discussion mailing list >>>> Dbp...@li... >>>> https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion >>>> >>>> >>>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Come build with us! The BlackBerry(R) Developer Conference in SF, CA >>> is the only developer event you need to attend this year. Jumpstart your >>> developing skills, take BlackBerry mobile applications to market and stay >>> ahead of the curve. Join us from November 9 - 12, 2009. Register now! >>> http://p.sf.net/sfu/devconference >>> _______________________________________________ >>> Dbpedia-discussion mailing list >>> Dbp...@li... >>> https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion >>> >>> >>> ------------------------------------------------------------------------------ >> Come build with us! The BlackBerry(R) Developer Conference in SF, CA >> is the only developer event you need to attend this year. Jumpstart your >> developing skills, take BlackBerry mobile applications to market and stay >> ahead of the curve. Join us from November 9 - 12, 2009. Register now! >> >> http://p.sf.net/sfu/devconference_______________________________________________ >> Dbpedia-discussion mailing list >> Dbp...@li... >> https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion >> > > |
From: Richard C. <ri...@cy...> - 2009-10-22 15:07:51
|
On 22 Oct 2009, at 14:20, Kenny Guan wrote: > by the way, how the SPQRQL end point resolve "?s a < > http://dbpedia.org/ontology/Company>"? is it trying to find the > triples with > p as > <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> > and o as > <http://dbpedia.org/ontology/Company> Exactly! The "a" keyword in SPARQL is just a syntactic shortcut for the rdf:type property. Best, Richard > ? > > thanks > Kenny > > On Thu, Oct 22, 2009 at 8:59 PM, Richard Cyganiak > <ri...@cy...>wrote: > >> >> On 22 Oct 2009, at 12:57, Kenny Guan wrote: >> >> Hi Pierre, >>> >>> thanks for your reply. Maybe I didn't describe my question >>> clearly. the >>> attributes of Company I want is like "founder", "year of >>> foundation" etc. >>> >>> A more specific example, an instance of Company like, Apple, has an >>> attribute "founder" with value of "Steve Jobs". >>> >> >> Try something like: >> >> SELECT DISTINCT ?p WHERE { >> ?s a <http://dbpedia.org/ontology/Company> . >> ?s ?p ?o . >> } >> >> This gets all resources of type Company, then finds all triples >> that have >> this resource as subject, and returns the predicate of these >> triples. The >> DISTINCT removes duplicates. >> >> Optionally you might want to also put this into the angle brackets, >> after >> the last dot: >> >> FILTER (REGEX(?p, 'ontology')) >> >> This removes all properties that do not have "ontology" in the URI, >> giving >> you only the properties defined by the ontology, and skipping general >> infobox properties. >> >> Hope that's what you're after. >> >> Best, >> Richard >> >> >> >>> does this make any sense? >>> >>> Many thanks >>> Kenny >>> >>> >>> On Thu, Oct 22, 2009 at 4:42 PM, Pierre De Wilde <pie...@gm... >>>> wrote: >>> >>> SELECT * WHERE { {?s ?p ?o. FILTER(?s IN (< >>>> http://dbpedia.org/ontology/Company>))} } >>>> >>>> 2009/10/22 Kenny Guan <gz...@gm...> >>>> >>>> Hey, >>>>> >>>>> I am doing some work on semantic search and I may want to use >>>>> dbpedia as >>>>> seed data. The thing I want to do now is, given a dbpedia ontology >>>>> class, >>>>> say COMPANY, i want to get all attributes of COMPANY. >>>>> >>>>> I see there are 170+ classes and 900+ attributes in dbpedia >>>>> ontology. >>>>> For >>>>> each object/instance, its type/class is specified in "Ontology >>>>> type" >>>>> dataset, its attributes are specified in "Ontology infoboxes" >>>>> dataset. >>>>> But >>>>> seems no dataset directly specifies the attributes of a particular >>>>> class, >>>>> right? >>>>> >>>>> if it is, how to write a SPARQL script to get attributes of >>>>> COMPANY? I >>>>> have never written a SPARQL, hope to start with this one. can >>>>> someone >>>>> give >>>>> some help? >>>>> >>>>> Thanks in advance >>>>> Kenny >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> Come build with us! The BlackBerry(R) Developer Conference in >>>>> SF, CA >>>>> is the only developer event you need to attend this year. >>>>> Jumpstart your >>>>> developing skills, take BlackBerry mobile applications to market >>>>> and >>>>> stay >>>>> ahead of the curve. Join us from November 9 - 12, 2009. Register >>>>> now! >>>>> http://p.sf.net/sfu/devconference >>>>> _______________________________________________ >>>>> Dbpedia-discussion mailing list >>>>> Dbp...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion >>>>> >>>>> >>>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Come build with us! The BlackBerry(R) Developer Conference in SF, >>>> CA >>>> is the only developer event you need to attend this year. >>>> Jumpstart your >>>> developing skills, take BlackBerry mobile applications to market >>>> and stay >>>> ahead of the curve. Join us from November 9 - 12, 2009. Register >>>> now! >>>> http://p.sf.net/sfu/devconference >>>> _______________________________________________ >>>> Dbpedia-discussion mailing list >>>> Dbp...@li... >>>> https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion >>>> >>>> >>>> ------------------------------------------------------------------------------ >>> Come build with us! The BlackBerry(R) Developer Conference in SF, CA >>> is the only developer event you need to attend this year. >>> Jumpstart your >>> developing skills, take BlackBerry mobile applications to market >>> and stay >>> ahead of the curve. Join us from November 9 - 12, 2009. Register >>> now! >>> >>> http://p.sf.net/sfu/devconference_______________________________________________ >>> Dbpedia-discussion mailing list >>> Dbp...@li... >>> https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion >>> >> >> |
From: Paul H. <pa...@on...> - 2009-10-22 14:16:50
|
Kenny Guan wrote: > Hey, > > I am doing some work on semantic search and I may want to use dbpedia > as seed data. The thing I want to do now is, given a dbpedia ontology > class, say COMPANY, i want to get all attributes of COMPANY. > > I see there are 170+ classes and 900+ attributes in dbpedia ontology. > For each object/instance, its type/class is specified in "Ontology > type" dataset, its attributes are specified in "Ontology infoboxes" > dataset. But seems no dataset directly specifies the attributes of > a particular class, right? > > if it is, how to write a SPARQL script to get attributes of COMPANY? I > have never written a SPARQL, hope to start with this one. can someone > give some help? > There's also an OWL file that describes what specific properties are associated with dbpedia ontology classes, if that helps. Overall, partitioning can be a desirable feature for generic databases: although I like keeping a taxonomic skeleton of all of dbpedia and freebase around, for specific projects it's certainly useful to extract properties connected with a particular sort of entity. |
From: Kenny G. <gz...@gm...> - 2009-10-22 14:24:14
|
On Thu, Oct 22, 2009 at 10:06 PM, Paul Houle <pa...@on...> wrote: > Kenny Guan wrote: > >> Hey, >> >> I am doing some work on semantic search and I may want to use dbpedia as >> seed data. The thing I want to do now is, given a dbpedia ontology class, >> say COMPANY, i want to get all attributes of COMPANY. >> >> I see there are 170+ classes and 900+ attributes in dbpedia ontology. For >> each object/instance, its type/class is specified in "Ontology type" >> dataset, its attributes are specified in "Ontology infoboxes" dataset. But >> seems no dataset directly specifies the attributes of a particular class, >> right? >> >> if it is, how to write a SPARQL script to get attributes of COMPANY? I >> have never written a SPARQL, hope to start with this one. can someone give >> some help? >> >> There's also an OWL file that describes what specific properties are > associated with dbpedia ontology classes, if that helps. > is there an already way to retrieve properties associated with an ontology class in OWL file? > > Overall, partitioning can be a desirable feature for generic databases: > although I like keeping a taxonomic skeleton of all of dbpedia and freebase > around, for specific projects it's certainly useful to extract properties > connected with a particular sort of entity. > |
From: Jona C. S. <jcs...@gm...> - 2009-10-22 20:53:25
|
On Thu, Oct 22, 2009 at 16:23, Kenny Guan <gz...@gm...> wrote: > is there an already way to retrieve properties associated with an ontology > class in OWL file? None that I'm aware of. It's should be quite simple though with some XML parsing or XSLT code. First find the class and all its base classes, then find all DatatypeProperty and ObjectProperty elements that declare one of these classes as their domain. The current ontology file can be found here: https://dbpedia.svn.sourceforge.net/svnroot/dbpedia/ontology/dbpedia_3.3.owl Be aware that a new version is coming up: https://dbpedia.svn.sourceforge.net/svnroot/dbpedia/ontology/dbpedia_3.4.owl Christopher |
From: Bernard V. <ber...@mo...> - 2009-10-22 22:45:42
|
Hello Kenny I'll try to show that your question can have different levels of answer depending on interpretation, all of them based on SPARQL queries altogether. As others have suggested, you can query the ontology level for properties of which Company class is the domain, by submitting the following at http://dbpedia.org/sparql PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?p WHERE {?p rdfs:domain <http://dbpedia.org/ontology/Company>} This gets the following list of properties. http://dbpedia.org/ontology/locationcity http://dbpedia.org/ontology/assets http://dbpedia.org/ontology/equity http://dbpedia.org/ontology/industry http://dbpedia.org/ontology/products http://dbpedia.org/ontology/services http://dbpedia.org/ontology/subsid http://dbpedia.org/ontology/areaServed http://dbpedia.org/ontology/divisions http://dbpedia.org/ontology/footnotes http://dbpedia.org/ontology/locationcountry http://dbpedia.org/ontology/marketcap http://dbpedia.org/ontology/netincome http://dbpedia.org/ontology/operatingincome This is pretty straightforward, but you get only properties directly and exclusively attached to Company class through the rdfs:domain declaration. Other properties might be inherited from Company superclasses, named or constructed (such as unionOf classes) or locally attached to this class using OWL restrictions. Not sure the latter happens in the dbpedia ontology, but you can e.g. query for properties of which domain is a Company superclass. PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?p WHERE { ?p rdfs:domain ?x. <http://dbpedia.org/ontology/Company> rdfs:subClassOf ?x } And you get a few more properties http://dbpedia.org/ontology/foundationplace http://dbpedia.org/ontology/keyPersonPosition http://dbpedia.org/ontology/product http://dbpedia.org/ontology/foundationdate http://dbpedia.org/ontology/foundationorganisation http://dbpedia.org/ontology/keyPerson http://dbpedia.org/ontology/foundationperson http://dbpedia.org/ontology/numberOfEmployees But this is only the ontology level and one might wonder which of the above are actually used in DBpedia *instances*. To figure it out, just try the following ... PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?p WHERE { ?x a <http://dbpedia.org/ontology/Company>. ?x ?p ?y } ... and get the surprise to find out more than 1000 different properties actually used to describe companies, meaning that, to paraphrase Hamlet, there is more in heaven and earth instances than is dreamt of in the model philosophy. Why so? Some properties in this list such as "length" are indeed weird for a company, so you might want to look for Companies having a length ... PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?x ?y WHERE { ?x a <http://dbpedia.org/ontology/Company>. ?x <http://dbpedia.org/ontology/length> ?y } Among the list you find e.g., < http://dbpedia.org/resource/Orion_International>. And if you look at the description of that one, you find indeed that it has a length, but also a width and a height. Well, strange indeed, but looking further down the description you find the following values for rdf:type dbpedia-owl:MeanOfTransportation dbpedia-owl:Company dbpedia-owl:Resource dbpedia-owl:Automobile dbpedia-owl:Organisation It figures. If you are both Company and Automobile, strange things are bound to happen to you. Hoping this little excursion will help you understand better, on one hand the power of SPARQL, and on the other hand that DBpedia is far from being a consistent set of data. In an open world, the question "What properties can a Company have?" has no unique answer. Bernard 2009/10/22 Jona Christopher Sahnwaldt <jcs...@gm...> > On Thu, Oct 22, 2009 at 16:23, Kenny Guan <gz...@gm...> wrote: > > is there an already way to retrieve properties associated with an > ontology > > class in OWL file? > > None that I'm aware of. It's should be quite simple though with > some XML parsing or XSLT code. First find the class and all its > base classes, then find all DatatypeProperty and ObjectProperty > elements that declare one of these classes as their domain. > > The current ontology file can be found here: > > > https://dbpedia.svn.sourceforge.net/svnroot/dbpedia/ontology/dbpedia_3.3.owl > > Be aware that a new version is coming up: > > > https://dbpedia.svn.sourceforge.net/svnroot/dbpedia/ontology/dbpedia_3.4.owl > > > Christopher > > > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry(R) Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart your > developing skills, take BlackBerry mobile applications to market and stay > ahead of the curve. Join us from November 9 - 12, 2009. Register now! > http://p.sf.net/sfu/devconference > _______________________________________________ > Dbpedia-discussion mailing list > Dbp...@li... > https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion > -- Bernard Vatant Senior Consultant Vocabulary & Data Engineering Tel: +33 (0) 971 488 459 Mail: ber...@mo... ---------------------------------------------------- Mondeca 3, cité Nollez 75018 Paris France Web: http://www.mondeca.com Blog: http://mondeca.wordpress.com ---------------------------------------------------- |
From: Kenny G. <gz...@gm...> - 2009-10-23 03:43:44
|
Hello Bernard, your analysis is awesome! i learned much from this post, thanks On Fri, Oct 23, 2009 at 6:45 AM, Bernard Vatant <ber...@mo...>wrote: > Hello Kenny > > I'll try to show that your question can have different levels of answer > depending on interpretation, all of them based on SPARQL queries altogether. > > As others have suggested, you can query the ontology level for properties > of which Company class is the domain, by submitting the following at > http://dbpedia.org/sparql > > PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> > SELECT DISTINCT ?p > WHERE {?p rdfs:domain <http://dbpedia.org/ontology/Company>} > > This gets the following list of properties. > > http://dbpedia.org/ontology/locationcity > http://dbpedia.org/ontology/assets > http://dbpedia.org/ontology/equity > http://dbpedia.org/ontology/industry > http://dbpedia.org/ontology/products > http://dbpedia.org/ontology/services > http://dbpedia.org/ontology/subsid > http://dbpedia.org/ontology/areaServed > http://dbpedia.org/ontology/divisions > http://dbpedia.org/ontology/footnotes > http://dbpedia.org/ontology/locationcountry > http://dbpedia.org/ontology/marketcap > http://dbpedia.org/ontology/netincome > http://dbpedia.org/ontology/operatingincome > > This is pretty straightforward, but you get only properties directly and > exclusively attached to Company class through the rdfs:domain declaration. > Other properties might be inherited from Company superclasses, named or > constructed (such as unionOf classes) or locally attached to this class > using OWL restrictions. Not sure the latter happens in the dbpedia ontology, > but you can e.g. query for properties of which domain is a Company > superclass. > > PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> > SELECT DISTINCT ?p > WHERE { ?p rdfs:domain ?x. > <http://dbpedia.org/ontology/Company> rdfs:subClassOf ?x > } > > And you get a few more properties > > http://dbpedia.org/ontology/foundationplace > http://dbpedia.org/ontology/keyPersonPosition > http://dbpedia.org/ontology/product > http://dbpedia.org/ontology/foundationdate > http://dbpedia.org/ontology/foundationorganisation > http://dbpedia.org/ontology/keyPerson > http://dbpedia.org/ontology/foundationperson > http://dbpedia.org/ontology/numberOfEmployees WHERE { ?p rdfs:domain ?x. <http://dbpedia.org/ontology/Company> rdfs:subClassOf ?x } will this get all properties of Company's farther classes or just one level up in the hierarchy? > > > But this is only the ontology level and one might wonder which of the above > are actually used in DBpedia *instances*. > To figure it out, just try the following ... > > PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> > SELECT DISTINCT ?p > WHERE { ?x a <http://dbpedia.org/ontology/Company>. > ?x ?p ?y } > > ... and get the surprise to find out more than 1000 different properties > actually used to describe companies, meaning that, to paraphrase Hamlet, > there is more in heaven and earth instances than is dreamt of in the model > philosophy. > Why so? Some properties in this list such as "length" are indeed weird for > a company, so you might want to look for Companies having a length ... > > PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> > SELECT DISTINCT ?x ?y > WHERE { ?x a <http://dbpedia.org/ontology/Company>. > ?x <http://dbpedia.org/ontology/length> ?y } > > Among the list you find e.g., < > http://dbpedia.org/resource/Orion_International>. > And if you look at the description of that one, you find indeed that it has > a length, but also a width and a height. > Well, strange indeed, but looking further down the description you find the > following values for rdf:type > > dbpedia-owl:MeanOfTransportation > dbpedia-owl:Company > dbpedia-owl:Resource > dbpedia-owl:Automobile > dbpedia-owl:Organisation > > It figures. If you are both Company and Automobile, strange things are > bound to happen to you. > > Hoping this little excursion will help you understand better, on one hand > the power of SPARQL, and on the other hand that DBpedia is far from being a > consistent set of data. In an open world, the question "What properties can > a Company have?" has no unique answer. > > Bernard > > > 2009/10/22 Jona Christopher Sahnwaldt <jcs...@gm...> > >> On Thu, Oct 22, 2009 at 16:23, Kenny Guan <gz...@gm...> wrote: >> > is there an already way to retrieve properties associated with an >> ontology >> > class in OWL file? >> >> None that I'm aware of. It's should be quite simple though with >> some XML parsing or XSLT code. First find the class and all its >> base classes, then find all DatatypeProperty and ObjectProperty >> elements that declare one of these classes as their domain. >> >> The current ontology file can be found here: >> >> >> https://dbpedia.svn.sourceforge.net/svnroot/dbpedia/ontology/dbpedia_3.3.owl >> >> Be aware that a new version is coming up: >> >> >> https://dbpedia.svn.sourceforge.net/svnroot/dbpedia/ontology/dbpedia_3.4.owl >> >> >> Christopher >> >> >> ------------------------------------------------------------------------------ >> Come build with us! The BlackBerry(R) Developer Conference in SF, CA >> is the only developer event you need to attend this year. Jumpstart your >> developing skills, take BlackBerry mobile applications to market and stay >> ahead of the curve. Join us from November 9 - 12, 2009. Register now! >> http://p.sf.net/sfu/devconference >> _______________________________________________ >> Dbpedia-discussion mailing list >> Dbp...@li... >> https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion >> > > > > -- > Bernard Vatant > Senior Consultant > Vocabulary & Data Engineering > Tel: +33 (0) 971 488 459 > Mail: ber...@mo... > ---------------------------------------------------- > Mondeca > 3, cité Nollez 75018 Paris France > Web: http://www.mondeca.com > Blog: http://mondeca.wordpress.com > ---------------------------------------------------- > |
From: Jona C. S. <jcs...@gm...> - 2009-10-22 23:14:38
|
Hello Bernard, very nice analysis! > It figures. If you are both Company and Automobile, strange > things are bound to happen to you. Indeed. :-) DBpedia resource types are generated based on Infoboxes in Wikipedia articles. http://en.wikipedia.org/wiki/Orion_International contains two Infoboxes - one for the company, one for its current product. We should use two different RDF subjects for the data extracted for these two infoboxes. It's on our (rather long) to-do-list... Christopher |
From: Jona C. S. <jcs...@gm...> - 2009-10-22 23:15:54
|
P.S. The main problem is devising a simple but reliable and useful scheme to generate RDF subject URIs for additional infoboxes. On Fri, Oct 23, 2009 at 01:14, Jona Christopher Sahnwaldt <jcs...@gm...> wrote: > Hello Bernard, > > very nice analysis! > >> It figures. If you are both Company and Automobile, strange >> things are bound to happen to you. > > Indeed. :-) > > DBpedia resource types are generated based on Infoboxes > in Wikipedia articles. http://en.wikipedia.org/wiki/Orion_International > contains two Infoboxes - one for the company, one for its > current product. We should use two different RDF subjects > for the data extracted for these two infoboxes. It's on our > (rather long) to-do-list... > > > Christopher > |
From: Bernard V. <ber...@mo...> - 2009-10-23 08:39:15
|
Hi Christopher I think this example actually raises the issue of the underlying Wikipedia (bad) practice of putting two infoboxes in the same page for two different subjects. If there is enough detailed information for the product "Orion VII Next Generation" to fill an infobox, this product IMO (with my Wikipedian hat on) deserves its own article. Meanwhile ... if there is more than one infobox in a page, take into account only the infobox of which title matches the article title seems to me a good heuristic. I don't think it's a good idea to create an URI for the additional subject, likely to clash with some other URIs. Suppose the product is called "Bellatrix" or "Betelgeuse", and you are into trouble. Bernard > > > DBpedia resource types are generated based on Infoboxes > > in Wikipedia articles. http://en.wikipedia.org/wiki/Orion_International > > contains two Infoboxes - one for the company, one for its > > current product. We should use two different RDF subjects > > for the data extracted for these two infoboxes. It's on our > > (rather long) to-do-list... > > > > > > Christopher > > > -- Bernard Vatant Senior Consultant Vocabulary & Data Engineering Tel: +33 (0) 971 488 459 Mail: ber...@mo... ---------------------------------------------------- Mondeca 3, cité Nollez 75018 Paris France Web: http://www.mondeca.com Blog: http://mondeca.wordpress.com ---------------------------------------------------- |
From: Jona C. S. <jcs...@gm...> - 2009-10-23 10:08:22
|
On Fri, Oct 23, 2009 at 10:39, Bernard Vatant <ber...@mo...> wrote: > I think this example actually raises the issue of the underlying Wikipedia > (bad) practice of putting two infoboxes in the same page for two different > subjects I agree to some extent, but we have to accept the fact that Wikipedia articles are targeting human readers, and most features, even Infoboxes, are designed to make the layout nicer. Most editors and users don't care if DBpedia et al have a hard time extracting structured data. I found a lengthy Wikipedia discussion about this issue: http://en.wikipedia.org/wiki/Wikipedia_talk:Manual_of_Style_(infoboxes)#Dispute_over_single_articles_having_multiple_infoboxes AFAICT, there is no clear consensus, but the general opinion seems to be that multiple infoboxes should be avoided, but also have legitimate uses. I'm afraid we won't be able to change that. > Meanwhile ... if there is more than one infobox in a page, > take into account only the infobox of which title matches > the article title seems to me a good heuristic. Good idea! But we'd have to relax that rule somewhat. In it's strict form, that rule would drop between 5 and 30 percent (rough estimate) of all articles. Clicking through some more or less random results on http://dbpedia.neofonie.de/browse/ , I found several articles that wouldn't work: http://en.wikipedia.org/wiki/United_States http://en.wikipedia.org/wiki/France http://en.wikipedia.org/wiki/Germany http://en.wikipedia.org/wiki/Billboard_(magazine) http://en.wikipedia.org/wiki/Manchester_United_F.C. http://en.wikipedia.org/wiki/World_Trade_Center http://en.wikipedia.org/wiki/The_Wizard_of_Oz_(1939_film) http://en.wikipedia.org/wiki/Titanic_(1997_film) > I don't think it's a good idea to create an URI for the > additional subject, likely to clash with some other URIs. Correct. Maybe we could append the title of the infobox to the page title, creating URIs like http://dbpedia.org/resource/Orion_International/Orion VII Next Generation or http://dbpedia.org/resource/Orion_International#Orion VII Next Generation for the second infobox on http://en.wikipedia.org/wiki/Orion_International . Christopher |
From: Tom M. <tfm...@gm...> - 2009-10-23 17:50:19
|
On Fri, Oct 23, 2009 at 4:39 AM, Bernard Vatant <ber...@mo...> wrote: > I think this example actually raises the issue of the underlying Wikipedia > (bad) practice of putting two infoboxes in the same page for two different > subjects. The problem isn't limited to pages with multiple infoboxes. There are also cases where there's only a single infobox, but it isn't about the subject of the article. Examples that come to mind are, for example, military battles which have an infobox about a notable military commander or vice versa, but I'm sure there are lots of others. Also, the fact that the information in infoboxes is (semi-)structured doesn't make it correct. I was reviewing language infoboxes the other day and came across a bunch where the author had apparently decided that having blank fields was bad, so if there was an iso3 code, but not iso2 code, they'd instead use the iso2 code for the language's language family. Saying these practices are "bad" is unlikely to have any effect. The authors of those articles are writing for humans, not computers, and a human can instantly tell what the relationship is between the infobox(es) and the article or, slightly less reliably, why a fact that isn't really true was substituted for an empty field Tom |